Jianghan 3 éve
szülő
commit
cf151f4fbf

+ 6 - 6
src/config.json

@@ -147,11 +147,15 @@
             },
             {
                 "key": "project_startdate",
-                "descript": "开工日期"
+                "descript": "项目开始日期"
             },
             {
                 "key": "project_completedate",
-                "descript": "竣工日期"
+                "descript": "项目结束日期"
+            },
+            {
+                "key": "signaturedate",
+                "descript": "合同签订日期"
             },
             {
                 "key": "project_duration",
@@ -269,10 +273,6 @@
                 "key": "funds",
                 "descript": "资金来源"
             },
-            {
-                "key": "signaturedate",
-                "descript": "合同签订日期"
-            },
             {
                 "key": "payway",
                 "descript": "付款方式"

+ 3 - 0
src/front/front.go

@@ -72,6 +72,7 @@ type Front struct {
 	projectIsExists          xweb.Mapper `xweb:"/front/project/isExists"`          //判断项目名称是否存在
 	projectCheckSuc          xweb.Mapper `xweb:"/front/project/check/success"`     //项目达标数据质检通过
 	projectPassSuc           xweb.Mapper `xweb:"/front/project/pass/success"`      //项目数据通过
+	projectTagNum            xweb.Mapper `xweb:"/front/project/tagNum"`            //项目标注数据量
 
 	//user task
 	userTaskSave     xweb.Mapper `xweb:"/front/user/task/save"`     //用户任务分发
@@ -111,6 +112,8 @@ func (f *Front) Index() {
 		_ = f.Render("project/task_user_list.html")
 	} else if role == "3" {
 		_ = f.Render("project/check_task_list.html")
+	} else if role == "2" {
+		_ = f.Render("project/task_group_list.html")
 	} else {
 		_ = f.Render("project/project_list.html")
 	}

+ 2 - 1
src/front/group.go

@@ -142,7 +142,7 @@ func (f *Front) GroupTaskListByAdmin() {
 // GroupUserTaskList 用户任务分发列表
 func (f *Front) GroupUserTaskList() {
 	defer qu.Catch()
-	//groupId := f.GetString("s_groupid") //用户组id
+	groupId := f.GetString("s_groupid") //用户组id
 	pid := f.GetString("pid")
 	groupTaskId := f.GetString("grouptaskid") //用户组任务id
 	qu.Debug("groupTaskId:", groupTaskId)
@@ -199,6 +199,7 @@ func (f *Front) GroupUserTaskList() {
 		allNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": groupTaskId})                              //数据总量
 		qu.Debug("数据总量:", allNum, "已分发量:", isGiveNum, "待分发量:", isNotGiveNum, "已标注量:", isTagNum, "未标注量:", isNotTagNum)
 		f.T["pid"] = pid
+		f.T["gid"] = groupId
 		f.T["grouptaskid"] = groupTaskId
 		f.T["allNum"] = allNum
 		f.T["isGiveNum"] = isGiveNum

+ 2 - 2
src/front/mark.go

@@ -234,7 +234,7 @@ func (f *Front) JyUserDataMark() {
 	qu.Debug("allTagFields===", allTagFields)
 	qu.Debug("tagSet===", tagSet)
 
-	if len(tagSet) > 0 || baseInfo["purchasinglist_alltag"] != nil { //purchasinglist_alltag特殊处理
+	if len(tagSet) >= 0 || baseInfo["purchasinglist_alltag"] != nil { //purchasinglist_alltag特殊处理
 		//1、更新数据源信息
 		setResult := map[string]interface{}{ //更新字段集
 			"i_updatetime": time.Now().Unix(),
@@ -394,7 +394,7 @@ func (f *Front) UserDataMark() {
 	}
 	qu.Debug("allTagFields===", allTagFields)
 	qu.Debug("tagSet===", tagSet)
-	if len(tagSet) > 0 || baseInfo["purchasinglist_alltag"] != nil { //purchasinglist_alltag特殊处理
+	if len(tagSet) >= 0 || baseInfo["purchasinglist_alltag"] != nil { //purchasinglist_alltag特殊处理
 		//1、更新数据源信息
 		setResult := map[string]interface{}{ //更新字段集
 			"i_updatetime": time.Now().Unix(),

+ 43 - 4
src/front/project.go

@@ -346,6 +346,8 @@ func (f *Front) ProjectGroupTaskList() {
 			allNoGiveDataNum := okNotGiveDataNum + IsNotOkNotGiveDataNum //总待分发量
 			allIsTagDataNum := okIsTagDataNum + IsNotOkIsTagDataNum      //已标注总量
 			allDataNum := allGiveDataNum + allNoGiveDataNum
+			// 查询全部实际可分发数据量(未分发、未标注)
+			okRealGiveNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_isgivegroup": false, "b_istag": false})
 			//qu.Debug("数据总量:", allDataNum, "已分发总量:", allGiveDataNum, "待分发总量:", allNoGiveDataNum, "已标注总量:", allIsTagDataNum)
 			//qu.Debug("达标量:", okAllDataNum, "达标已分发量:", okIsGiveDataNum, "达标待分发量:", okNotGiveDataNum, "达标已标注量:", okIsTagDataNum)
 			//qu.Debug(" 未达标量:", IsNoOkAllDataNum, " 未达标已分发量:", IsNoOkIsGiveDataNum, " 未达标待分发量:", IsNotOkNotGiveDataNum, " 未达标已标注量:", IsNotOkIsTagDataNum)
@@ -363,6 +365,7 @@ func (f *Front) ProjectGroupTaskList() {
 			f.T["allIsTagDataNum"] = allIsTagDataNum
 			f.T["okIsTagDataNum"] = okIsTagDataNum
 			f.T["IsNotOkIsTagDataNum"] = IsNotOkIsTagDataNum
+			f.T["okRealGiveNum"] = okRealGiveNum
 			_ = f.Render("project/project_clear.html", &f.T)
 		} else {
 			qu.Debug("Project Find Error")
@@ -398,13 +401,21 @@ func (f *Front) ProjectGroupTaskSave() {
 		//if stype != "tag" { //如果分发的是达标数据或者全部数据且进行了初步质检,将没有质检记录的字段从v_taginfo标注记录中删除
 		//	DeleleDataTagInfo(sourceinfo)
 		//}
+		// 查询实际可分发数据量(未分发、未标注)
+		realNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"b_isgivegroup": false, "b_istag": false})
 		for _, groupInfo := range groupArr {
 			groupId := qu.ObjToString(groupInfo["s_groupid"])
 			groupIdArr = append(groupIdArr, groupId)
 			givenum := qu.IntAll(groupInfo["i_givenum"])
-			if givenum == 0 {
+			if givenum <= 0 {
 				continue
 			}
+			if realNum <= 0 {
+				break
+			}
+			if realNum < givenum {
+				givenum = realNum
+			}
 			groupTaskId := primitive.NewObjectID()
 			groupTaskIdStr := mongodb.BsonIdToSId(groupTaskId)
 			groupTaskIdArr = append(groupTaskIdArr, groupTaskIdStr)
@@ -432,6 +443,7 @@ func (f *Front) ProjectGroupTaskSave() {
 				"s_departname":  qu.ObjToString((*project)["s_departname"]), //部门名称
 				"s_rulename":    qu.ObjToString((*project)["s_rulename"]),   //规则名称
 			}
+			realNum = realNum - givenum
 			taskArr = append(taskArr, groupTask)
 		}
 	}
@@ -495,12 +507,14 @@ func (f *Front) ProjectGroupTaskRepulse() {
 	//status := f.GetString("s_status")
 	groupTaskId := f.GetString("taskid")
 	sourceinfo := f.GetString("s_sourceinfo")
+	currenttime := time.Now().Unix()
 	//更新数据源
 	success = util.Mgo.Update(sourceinfo, map[string]interface{}{"s_grouptaskid": groupTaskId}, map[string]interface{}{
 		"$set": map[string]interface{}{
 			"b_istag":      false,
+			"i_ckdata":     2,
 			"b_isgiveuser": false,
-			"i_updatetime": time.Now().Unix(),
+			"i_updatetime": currenttime,
 		},
 		"$unset": map[string]interface{}{
 			"s_userid":     "",
@@ -509,12 +523,23 @@ func (f *Front) ProjectGroupTaskRepulse() {
 		},
 	}, false, true)
 	if success {
+		util.Mgo.Update(util.TASKCOLLNAME, map[string]interface{}{
+			"s_stype":    "user",
+			"s_parentid": groupTaskId,
+		}, map[string]interface{}{
+			"$set": map[string]interface{}{
+				"s_status":       "已关闭",
+				"s_progress":     "%0",
+				"i_updatetime":   currenttime,
+				"s_updateperson": username,
+			},
+		}, false, true)
 		//更新用户组任务 清除最迟完成时间,更新任务状态
 		success = util.Mgo.UpdateById(util.TASKCOLLNAME, groupTaskId, map[string]interface{}{
 			"$set": map[string]interface{}{
 				"s_status":       "未开始",
 				"s_updateperson": username,
-				"i_updatetime":   time.Now().Unix(),
+				"i_updatetime":   currenttime,
 				"s_progress":     "0%",
 			},
 			"$unset": map[string]interface{}{
@@ -784,8 +809,9 @@ func UpdateSourceInfoByGroup(sourceinfo, stype string, groupIdInfo map[string]ut
 		ch := make(chan bool, 5)
 		wg := &sync.WaitGroup{}
 		lock := &sync.Mutex{}
-		query := map[string]interface{}{ //查找未分配对应stype的数据分发
+		query := map[string]interface{}{ //查找未分配且未标注对应stype的数据分发
 			"b_isgivegroup": false,
+			"b_istag":       false,
 		}
 		if stype == "notag" { //达标数据
 			query["b_istagging"] = false
@@ -1226,3 +1252,16 @@ func (f *Front) ProjectPassSuc() {
 		f.ServeJson(map[string]interface{}{"success": b, "msg": "更新数据失败"})
 	}
 }
+
+func (f *Front) ProjectTagNum() {
+	defer qu.Catch()
+	if f.Method() == "POST" {
+		sourceinfo := f.GetString("s_sourceinfo")
+		count := util.Mgo.Count(sourceinfo, map[string]interface{}{"i_ckdata": 2})
+		if count > 0 {
+			f.ServeJson(map[string]interface{}{"success": true})
+		} else {
+			f.ServeJson(map[string]interface{}{"success": false, "msg": "暂时没有可质检的数据"})
+		}
+	}
+}

+ 19 - 9
src/front/remark.go

@@ -696,12 +696,13 @@ func (f *Front) CheckData() {
 		})
 	} else {
 		if tid == "" {
-			//project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, map[string]interface{}{"i_importnum": 1})
-			//f.T["taskNum"] = (*project)["i_importnum"]
 			query1 := make(map[string]interface{})
 			if stype == "all" {
+				project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, map[string]interface{}{"i_importnum": 1})
+				f.T["taskNum"] = (*project)["i_importnum"]
 				query1["i_ckdata"] = 2
 			} else if stype == "notag" {
+				f.T["taskNum"] = util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": false})
 				query1["b_istagging"] = false
 				if datatype == 1 {
 					// 待分发数据
@@ -713,14 +714,17 @@ func (f *Front) CheckData() {
 					query1["b_isgivegroup"] = true
 				}
 			} else if stype == "tag" {
+				f.T["taskNum"] = util.Mgo.Count(sourceinfo, map[string]interface{}{"b_istagging": false})
 				query1["b_istagging"] = true //未达标
 				query1["i_ckdata"] = 2
 			} else {
+				project, _ := util.Mgo.FindById(util.PROJECTCOLLNAME, pid, map[string]interface{}{"i_importnum": 1})
+				f.T["taskNum"] = (*project)["i_importnum"]
 				query1["i_ckdata"] = 2
 			}
 			qu.Debug(sourceinfo, query1)
 			count := util.Mgo.Count(sourceinfo, query1)
-			f.T["taskNum"] = count
+			//f.T["taskNum"] = count
 			f.T["taskTagNum"] = count
 			query1["b_check"] = true // 已质检
 			checkCount := util.Mgo.Count(sourceinfo, query1)
@@ -967,7 +971,6 @@ func (f *Front) CheckResult() {
 	defer util.Mgo.DestoryMongoConn(sess)
 	query := make(map[string]interface{})
 	if tid == "" {
-		allNum = util.Mgo.Count(util.PROJECTCOLLNAME, map[string]interface{}{"b_check": true})
 		query1 := make(map[string]interface{})
 		if stype == "all" {
 			query1["i_ckdata"] = 2
@@ -985,7 +988,7 @@ func (f *Front) CheckResult() {
 			query1["b_istagging"] = true //未达标
 			query1["i_ckdata"] = 2
 		}
-		f.T["taskNum"] = util.Mgo.Count(sourceinfo, query1)
+		allNum = util.Mgo.Count(sourceinfo, query1)
 	} else {
 		task, _ := util.Mgo.FindById(util.TASKCOLLNAME, tid, map[string]interface{}{"i_givenum": 1})
 		allNum = qu.IntAll((*task)["i_givenum"]) //任务数据量
@@ -1055,13 +1058,20 @@ func (f *Front) CheckResult() {
 	tmp["num3"] = checkNumR
 	tmp["num4"] = CountPr(checkNumR, checkNum)
 	dataSelect = append(dataSelect, tmp)
-	for k, v := range (*projcet)["v_fields"].(map[string]interface{}) {
+	// 排序
+	fields := (*projcet)["v_fields"].(map[string]interface{})
+	var strs []string
+	for k := range fields {
+		strs = append(strs, k)
+	}
+	sort.Strings(strs)
+	for _, v := range strs {
 		tmp1 := make(map[string]interface{})
-		tmp1["name"] = v
+		tmp1["name"] = fields[v]
 		tmp1["num1"] = markNum
 		tmp1["num2"] = checkNum
-		tmp1["num3"] = cmaps[k]
-		tmp1["num4"] = CountPr(cmaps[k], checkNum)
+		tmp1["num3"] = cmaps[v]
+		tmp1["num4"] = CountPr(cmaps[v], checkNum)
 		dataSelect = append(dataSelect, tmp1)
 	}
 	dataSource["全部"] = dataSelect

+ 18 - 2
src/front/user.go

@@ -281,6 +281,13 @@ func (f *Front) UserGroupState() {
 	if f.Method() == "POST" {
 		data := GetPostForm(f.Request)
 		b := Mgo.UpdateById("s_group", qu.ObjToString(data["id"]), map[string]interface{}{"$set": map[string]interface{}{"i_state": data["state"]}})
+		b = Mgo.Update("s_user", map[string]interface{}{"s_groupid": qu.ObjToString(data["id"])}, map[string]interface{}{"$set": map[string]interface{}{"i_state": data["state"]}}, false, false)
+		if !b {
+			f.ServeJson(map[string]interface{}{
+				"rep": b,
+			})
+			return
+		}
 		f.ServeJson(map[string]interface{}{
 			"rep": b,
 		})
@@ -300,6 +307,14 @@ func (f *Front) UserGroupStateBulk() {
 				f.ServeJson(map[string]interface{}{
 					"rep": b,
 				})
+				return
+			}
+			b = Mgo.Update("s_user", map[string]interface{}{"s_groupid": k}, map[string]interface{}{"$set": m}, false, false)
+			if !b {
+				f.ServeJson(map[string]interface{}{
+					"rep": b,
+				})
+				return
 			}
 		}
 		f.ServeJson(map[string]interface{}{
@@ -601,8 +616,9 @@ func (f *Front) GroupList() {
 func (f *Front) UserList() {
 	qu.Catch()
 	if f.Method() == "POST" {
-		user := f.GetSession("user").(map[string]interface{})
-		gid := qu.ObjToString(user["s_groupid"])
+		//user := f.GetSession("user").(map[string]interface{})
+		//gid := qu.ObjToString(user["s_groupid"])
+		gid := f.GetString("gid")
 		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)

+ 5 - 5
src/web/templates/project/check_result.html

@@ -38,16 +38,16 @@
                             <h4><i class="glyphicon glyphicon-exclamation-sign" style="margin-right: 6px"></i>数据情况</h4>
                             <div class="form-group" style="margin-left: 10px;margin-top: 10px">
                                 <div class="col-xs-5" style="width: auto">
-                                    <label class="form-inline">已数据/数据总量:
-                                        <input type="text" class="form-control" readonly value="{{.T.taskTagNum}} / {{ .T.taskNum }}"></label>
-                                    <label class="form-inline">已检数据/已标总量:
-                                        <input type="text" class="form-control" readonly value="{{.T.taskCheckNum}} / {{ .T.taskTagNum }}"></label>
+                                    <label class="form-inline">已数据/数据总量:
+                                        <input type="text" class="form-control" readonly value="{{.T.taskCheckNum}} / {{ .T.taskNum }}"></label>
+<!--                                    <label class="form-inline">已检数据/已标总量:-->
+<!--                                        <input type="text" class="form-control" readonly value="{{.T.taskCheckNum}} / {{ .T.taskTagNum }}"></label>-->
                                 </div>
                             </div>
                         </div>
 
                         <div id="status-div" class="col-xs-5 form-inline" style="width: auto;float:right;">
-                            <label for="statusSelect">状态
+                            <label for="statusSelect">用户
                                 <select class="form-control selectpicker" id="statusSelect"></select></label>
                         </div>
                         <table id="dataTable" class="table table-bordered table-hover">

+ 6 - 3
src/web/templates/project/project_clear.html

@@ -179,7 +179,10 @@
     let allNoGiveDataNum = {{.T.allNoGiveDataNum}}
     let okNotGiveDataNum = {{.T.okNotGiveDataNum}}
     let okIsTagDataNum = {{ .T.okIsTagDataNum }}
+    let IsNoOkAllDataNum = {{ .T.IsNoOkAllDataNum }}
     let IsNotOkNotGiveDataNum = {{.T.IsNotOkNotGiveDataNum}}
+    let IsNotOkIsTagDataNum = {{ .T.IsNotOkIsTagDataNum }}
+    let okRealGiveNum = {{ .T.okRealGiveNum }}
     let groupList = []
     let tableData = []
     let stype = ""                                  // 分发类型:所有数据:all 达标数据:notag 未达标:tag
@@ -238,7 +241,7 @@
                 {
                     "data": "_id", width: "11%", render: function (val, a, row, pos) {
                         tmp = '<div>' +
-                            '<a class="btn btn-sm btn-primary" href="/front/group/user/task/list?pid='+projectid+'&grouptaskid=' + val + '&s_sourceinfo='+row.s_sourceinfo+'">查看</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-primary" href="/front/group/user/task/list?pid='+projectid+'&grouptaskid='+val+'&s_groupid='+row.s_groupid+'&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=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" onclick="repulseTask(\''+val+'\',\''+row.s_sourceinfo+'\',\''+row.s_status+'\')">打回</a>&nbsp;&nbsp;' +
@@ -298,7 +301,7 @@
     function dispatchTask(val) {
         stype = val
         if (stype === "all") {
-            if (allNoGiveDataNum === 0) {
+            if (okRealGiveNum === 0) {
                 showTip("没有可分配的数据!")
                 return
             }
@@ -310,7 +313,7 @@
             }
             $('#modal-num').html(okNotGiveDataNum)
         }else {
-            if (IsNotOkNotGiveDataNum === 0) {
+            if (IsNotOkNotGiveDataNum === 0 || (IsNoOkAllDataNum === IsNotOkIsTagDataNum)) {
                 showTip("没有可分配的数据!")
                 return
             }

+ 14 - 2
src/web/templates/project/project_list.html

@@ -595,8 +595,20 @@
 
     function checkMethod(pid, sourceinfo, status) {
         if (status === "进行中" || status === "已完成") {
-            sessionStorage.setItem("check", "project")
-            window.location.href = "/front/user/check/data?pid=" + pid + "&s_sourceinfo=" + sourceinfo
+            $.ajax({
+                url: "/front/project/tagNum",
+                type: "POST",
+                data: {"s_sourceinfo": sourceinfo},
+                success: function (r) {
+                    if (r.success) {
+                        sessionStorage.setItem("check", "project")
+                        window.location.href = "/front/user/check/data?pid=" + pid + "&s_sourceinfo=" + sourceinfo
+                    }else {
+                        showTip(r.msg);
+                    }
+                }
+            })
+
         }else {
             showTip("项目未分发任务")
         }

+ 3 - 1
src/web/templates/project/task_detail.html

@@ -161,6 +161,8 @@
     }else {
         menuActive("group/task/list");
     }
+
+    let gid = {{ .T.gid }}
     let grouptaskid = {{ .T.grouptaskid }}
     let isNotGiveNum = {{ .T.isNotGiveNum }}
     let userList = []
@@ -247,7 +249,7 @@
         $.ajax({
             url: "/front/group/user/list",
             type: "POST",
-            data: {},
+            data: {"gid": gid},
             success: function (r) {
                 if (r.rep) {
                     userList = r.data

+ 1 - 1
src/web/templates/project/task_group_list.html

@@ -113,7 +113,7 @@
                 {
                     "data": "_id", width: "11%", render: function (val, a, row, pos) {
                         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" href="/front/group/user/task/list?grouptaskid='+val+'&s_groupid='+row.s_groupid+'&s_sourceinfo='+row.s_sourceinfo+'">查看</a>&nbsp;&nbsp;' +
                             // '<a class="btn btn-sm btn-warning">分发</a>&nbsp;&nbsp;' +
                             '<a class="btn btn-sm btn-primary" onclick="checkMethod(\'' + row.s_projectid + '\',\'' + val + '\',\'' + row.s_sourceinfo + '\')">质检</a>&nbsp;&nbsp;' +
                             // '<a class="btn btn-sm btn-primary">质检结果</a>&nbsp;&nbsp;' +

+ 1 - 1
src/web/templates/project/task_list.html

@@ -134,7 +134,7 @@
                 {
                     "data": "_id", width: "11%", render: function (val, a, row, pos) {
                         tmp = '<div>' +
-                            '<a class="btn btn-sm btn-primary" href="/front/group/user/task/list?grouptaskid=' + val + '&s_sourceinfo='+row.s_sourceinfo+'&stype=jy">查看</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-primary" href="/front/group/user/task/list?grouptaskid='+val+'&s_groupid='+row.s_groupid+'&s_sourceinfo='+row.s_sourceinfo+'&stype=jy">查看</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" onclick="checkMethod(\'' + row.s_projectid + '\',\'' + val + '\',\'' + row.s_sourceinfo + '\')">质检</a>&nbsp;&nbsp;' +
                             '<a class="btn btn-sm btn-primary" onclick="closeTask(\'' + val + '\',\''+row.s_sourceinfo+'\',\'' + row.s_status + '\')">关闭</a>&nbsp;&nbsp;' +

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

@@ -197,7 +197,7 @@
                 data: {"id": id, "state": v},
                 success: function (r) {
                     if (r.rep) {
-                        ttable.ajax.reload();
+                        ttable.api().ajax.reload();
                     } else {
                         showTip("状态修改失败");
                     }
@@ -214,7 +214,7 @@
                 data: {"id": id},
                 success: function (r) {
                     if (r.rep) {
-                        ttable.ajax.reload();
+                        ttable.api().ajax.reload();
                     } else {
                         showTip("状态修改失败");
                     }

+ 1 - 1
src/web/templates/user/user_list.html

@@ -302,7 +302,7 @@
                 data: {"id": id, "state": v},
                 success: function (r) {
                     if (r.rep) {
-                        ttable.ajax.reload();
+                        ttable.api().ajax.reload();
                     } else {
                         showTip("状态修改失败");
                     }