소스 검색

no message

Jianghan 3 년 전
부모
커밋
a0b3082acc
4개의 변경된 파일115개의 추가작업 그리고 33개의 파일을 삭제
  1. 1 1
      src/front/user.go
  2. 7 11
      src/web/templates/project/project_clear.html
  3. 99 17
      src/web/templates/project/task_detail.html
  4. 8 4
      src/web/templates/project/task_group_list.html

+ 1 - 1
src/front/user.go

@@ -332,7 +332,7 @@ func (f *Front) UserList() {
 		user := f.GetSession("user").(map[string]interface{})
 		gid := qu.ObjToString(user["s_groupid"])
 		query := map[string]interface{}{"s_groupid": gid, "b_delete": false, "i_state": true, "i_role": "3"}
-		field := map[string]interface{}{"s_login": 1, "s_groupid": 1}
+		field := map[string]interface{}{"s_login": 1, "s_groupid": 1, "s_name": 1}
 		info, b := Mgo.Find("s_user", query, nil, field, false, -1, -1)
 		if b && len(*info) > 0 {
 			f.ServeJson(map[string]interface{}{

+ 7 - 11
src/web/templates/project/project_clear.html

@@ -147,12 +147,12 @@
                                     <div id="itemDiv" class="form-group" style="margin-left: 10px;display: none">
                                         <select id="group-select-clone"></select>
                                         <label class="control-label form-inline" style="margin-left: 20px">数据量(条):
-                                            <input type="number" class="form-control" required></label>
+                                            <input type="number" class="form-control"></label>
                                     </div>
-                                    <div class="form-group clone-template" style="margin-left: 10px;">
+                                    <div class="form-group group-item" style="margin-left: 10px;">
                                         <select class="selectpicker" id="group-select"></select>
                                         <label class="control-label form-inline" style="margin-left: 20px">数据量(条):
-                                            <input type="number" class="form-control by-use" required></label>
+                                            <input type="number" class="form-control"></label>
                                         <input type="button" class="btn btn-info btn-sm" onclick="addTaskSelect()" value="新增">
                                     </div>
                                 </div>
@@ -230,7 +230,7 @@
                     }
                 },
                 {
-                    "data": "s_groupid", width: "11%", render: function (val, a, row, pos) {
+                    "data": "_id", width: "11%", render: function (val, a, row, pos) {
                         tmp = '<div>' +
                             '<a class="btn btn-sm btn-primary" href="/front/user/task/list?grouptaskid=' + val + '&s_sourcetaskinfo='+row.s_sourcetaskinfo+'">查看</a>&nbsp;&nbsp;' +
                             '<a class="btn btn-sm btn-warning" onclick="retrieveTask(' + row + ')">收回</a>&nbsp;&nbsp;' +
@@ -287,17 +287,16 @@
             $('#group-select')[0].appendChild(opt)
         }
         $("#group-select").selectpicker("refresh");
-
     }
 
     function cancelModel() {
-        $('#TaskDiv .form-group.clone-template').remove()
+        $('#TaskDiv .group-item.clone-template').remove()
         $("#modal-create-task").modal('hide')
         document.getElementById("modal-form-task").reset();
     }
 
     function addTaskSelect() {
-        let tNode = $('#itemDiv').clone().addClass('clone-template').show()
+        let tNode = $('#itemDiv').clone().addClass('group-item').addClass('clone-template').show()
         let st = $(tNode).find('select')
         $(st).addClass('selectpicker')
         for (var i in groupList) {
@@ -312,13 +311,11 @@
 
     function saveTask() {
         let arr = []
-        $('.clone-template').each(function () {
+        $('.group-item').each(function () {
             var selectId = $(this).find("select option:checked").val()
             var inputVal = $(this).find("input").val()
-            console.log(selectId, inputVal)
             let tmp = {}
             for (let v in groupList) {
-                console.log(v)
                 if (groupList[v]["_id"] === selectId) {
                     tmp["s_groupid"] = selectId
                     tmp["s_groupname"] = groupList[v]["s_name"]
@@ -330,7 +327,6 @@
             arr.push(tmp)
         })
         console.log(arr)
-
         $.ajax({
             url: "/front/project/task/save",
             type: 'POST',

+ 99 - 17
src/web/templates/project/task_detail.html

@@ -111,21 +111,21 @@
                                         <div id="itemDiv" class="form-group" style="margin-left: 10px;display: none">
                                             <select id="group-select-clone"></select>
                                             <label class="control-label form-inline" style="margin-left: 20px">数据量(条):
-                                                <input type="number" class="form-control" required></label>
+                                                <input type="number" class="form-control"></label>
                                         </div>
-                                        <div class="form-group clone-template" style="margin-left: 10px;">
+                                        <div class="form-group group-item" style="margin-left: 10px;">
                                             <select class="selectpicker" id="group-select"></select>
                                             <label class="control-label form-inline" style="margin-left: 20px">数据量(条):
-                                                <input type="number" class="form-control by-use" required></label>
+                                                <input type="number" class="form-control"></label>
                                             <input type="button" class="btn btn-info btn-sm" onclick="addTaskSelect()" value="新增">
                                         </div>
                                     </div>
                                 </div>
                                 <div id="task-auto" style="display: none">
                                     <label class="control-label form-inline" style="margin-left: 20px">用户数量:
-                                        <input type="number" class="form-control by-use" required></label>
-                                    <label class="control-label form-inline" style="margin-left: 20px">数据量(条):
-                                        <input type="number" class="form-control by-use" required></label>
+                                        <input type="number" class="form-control" id="modal-user-num"></label>
+                                    <label class="control-label form-inline" style="margin-left: 20px">分配总量(条):
+                                        <input type="number" class="form-control" id="modal-data-num"></label>
                                 </div>
                             </div>
                         </form>
@@ -146,7 +146,7 @@
 
     let grouptaskid = {{ .T.grouptaskid }}
     let userList = []
-    let stype = ""
+    let stype = "man"
 
     $(function () {
         ttable = $('#dataTable').dataTable({
@@ -174,13 +174,29 @@
             },
             "columns": [
                 {"data": null, width: "1%"},
-                {"data": "s_personname", width: "5%"},
+                {"data": "s_login", width: "5%"},
                 {"data": "s_projectname", width: "4%"},
                 {"data": "i_givenum", width: "4%"},
-                {"data": "", width: "4%"},
-                {"data": "", width: "4%"},
-                {"data": "", width: "4%"},
-                {"data": "", width: "4%"},
+                {"data": "s_status", width: "4%"},
+                {"data": "s_progress", width: "4%"},
+                {"data": "i_starttime", width: "4%", render: function (val) {
+                        if (val === undefined) {
+                            return "未开始"
+                        }else {
+                            var dt = new Date()
+                            dt.setTime(parseInt(val) * 1000);
+                            return dt.format("yyyy-MM-dd")
+                        }
+                    }},
+                {"data": "i_completetime", width: "4%", render: function (val) {
+                        if (val === undefined) {
+                            return "未完成"
+                        }else {
+                            var dt = new Date()
+                            dt.setTime(parseInt(val) * 1000);
+                            return dt.format("yyyy-MM-dd")
+                        }
+                    }},
                 {
                     "data": "_id", width: "11%", render: function (val, a, row, pos) {
                         tmp = '<div>' +
@@ -197,7 +213,7 @@
         $.ajax({
             url: "/front/user/task/list",
             type: "POST",
-            data: {"grouptaskid": grouptaskid},
+            data: {"grouptaskid": grouptaskid, "status": "-1"},
             success: function (r) {
                 if (r.data.length > 0) {
                     console.log(r.data)
@@ -231,13 +247,21 @@
     });
 
     function cancelModel() {
-        $('#TaskDiv .form-group.clone-template').remove()
+        $('#TaskDiv .group-item.clone-template').remove()
         $("#modal-create-task").modal('hide')
         document.getElementById("modal-form-task").reset();
     }
 
     function dispatchTask(val) {
         $('#modal-create-task').modal('show')
+        let text = document.getElementById("modal-user-num");
+        text.setAttribute("max", userList.length.toString())
+        text.onkeyup = function(){
+            this.value=this.value.replace(/\D/g,'');
+            if(text.value > userList.length){
+                text.value = userList.length;
+            }
+        }
         for (var i in userList) {
             var opt = document.createElement('option');
             opt.innerText = userList[i]["s_login"];
@@ -248,7 +272,7 @@
     }
 
     function addTaskSelect() {
-        let tNode = $('#itemDiv').clone().addClass('clone-template').show()
+        let tNode = $('#itemDiv').clone().addClass('group-item').addClass('clone-template').show()
         let st = $(tNode).find('select')
         $(st).addClass('selectpicker')
         for (var i in userList) {
@@ -261,10 +285,68 @@
         $('#TaskDiv').append($(tNode))
     }
 
-    function saveTask(val) {
+    function saveTask() {
 
         let arr = []
-        arr.push({"s_userid": "61a47d76c908d368871f5037", "s_login": "ceshi_1", "i_givenum": 100})
+        if (stype === "man") {
+            $('.group-item').each(function () {
+                var selectId = $(this).find("select option:checked").val()
+                var inputVal = $(this).find("input").val()
+                console.log(selectId, inputVal)
+                let tmp = {}
+                for (let v in userList) {
+                    if (userList[v]["_id"] === selectId) {
+                        tmp["s_userid"] = selectId
+                        tmp["s_login"] = userList[v]["s_login"]
+                        tmp["s_name"] = userList[v]["s_name"]
+                        tmp["i_givenum"] = inputVal
+                        break
+                    }
+                }
+                arr.push(tmp)
+            })
+        }else if (stype === "auto") {
+            let userNum = parseInt($('#modal-user-num').val())
+            let dataNum = parseInt($('#modal-data-num').val())
+            console.log(userNum, dataNum, dataNum > userNum)
+            if (userNum > 0 && dataNum > 0 && dataNum > userNum) {
+                if (dataNum%userNum === 0) {
+                    // 整除
+                    let avg = dataNum/userNum
+                    for (let i = 0; i < userNum; i++) {
+                        let tmp = {}
+                        tmp["s_userid"] = userList[i]["_id"]
+                        tmp["s_login"] = userList[i]["s_login"]
+                        tmp["s_name"] = userList[i]["s_name"]
+                        tmp["i_givenum"] = avg
+                        arr.push(tmp)
+                    }
+                }else {
+                    // 没有整除
+                    let quo =  Math.floor(dataNum/userNum)      // 商数
+                    let rem = dataNum%userNum                   // 余数
+                    console.log("quo---", quo, "rem---", rem)
+                    for (let i = 0; i < userNum; i++) {
+                        let tmp = {}
+                        tmp["s_userid"] = userList[i]["_id"]
+                        tmp["s_login"] = userList[i]["s_login"]
+                        tmp["s_name"] = userList[i]["s_name"]
+                        if (i === (userNum-1)) {
+                            tmp["i_givenum"] = quo + rem
+                        }else {
+                            tmp["i_givenum"] = quo
+                        }
+                        arr.push(tmp)
+                    }
+                }
+            }else {
+                showTip("请设置有效数字")
+                return;
+            }
+        }
+
+        console.log(arr)
+        // arr.push({"s_userid": "61a47d76c908d368871f5037", "s_login": "ceshi_1", "i_givenum": 100})
         $.ajax({
             url: "/front/user/task/save",
             type: "POST",

+ 8 - 4
src/web/templates/project/task_group_list.html

@@ -88,10 +88,14 @@
                 {"data": "i_givenum", width: "4%"},
                 {"data": "s_status", width: "4%"},
                 {"data": "s_progress", width: "4%"},
-                {"data": "i_createtime", width: "4%", render: function (val) {
-                        var dt = new Date()
-                        dt.setTime(parseInt(val) * 1000);
-                        return dt.format("yyyy-MM-dd")
+                {"data": "i_starttime", width: "4%", render: function (val) {
+                        if (val === undefined) {
+                            return "未开始"
+                        }else {
+                            var dt = new Date()
+                            dt.setTime(parseInt(val) * 1000);
+                            return dt.format("yyyy-MM-dd")
+                        }
                     }},
                 {"data": "i_completetime", width: "4%", render: function (val) {
                         if (val === undefined) {