Jianghan 3 жил өмнө
parent
commit
db57e117e6

+ 2 - 1
src/front/front.go

@@ -63,7 +63,8 @@ type Front struct {
 	projectTaskClose      xweb.Mapper `xweb:"/front/project/task/close"`     //用户组任务关闭
 	projectGetEntnameList xweb.Mapper `xweb:"/front/project/getEntnameList"` //模糊查询公司名称
 
-	userTaskList xweb.Mapper `xweb:"/front/user/task/list"` //用户任务列表
+	groupTaskList xweb.Mapper `xweb:"/front/group/task/list"` //用户组任务列表
+	userTaskList  xweb.Mapper `xweb:"/front/user/task/list"`  //用户任务列表
 }
 
 func (f *Front) Index() {

+ 18 - 0
src/front/project.go

@@ -1001,3 +1001,21 @@ func UpdateMarkColl(bidData, markData, tagInfoMap, baseInfoMap *map[string]inter
 		(*baseInfoMap)["i_ckdata"] = 1
 	}
 }
+
+func (f *Front) UserTaskList() {
+	qu.Catch()
+	if f.Method() == "POST" {
+
+	} else {
+		_ = f.Render("project/task_user_list.html")
+	}
+}
+
+func (f *Front) GroupTaskList() {
+	qu.Catch()
+	if f.Method() == "POST" {
+
+	} else {
+		_ = f.Render("project/task_group_list.html")
+	}
+}

+ 245 - 0
src/web/templates/project/task_group_list.html

@@ -0,0 +1,245 @@
+{{include "com/inc.html"}}
+<!-- Main Header -->
+{{include "com/header.html"}}
+<!-- Left side column. 权限菜单 -->
+{{include "com/menu.html"}}
+<div class="content-wrapper">
+    <section class="content-header">
+        <h1>
+            <small></small>
+        </h1>
+        <ol class="breadcrumb">
+            <li><a href="#"><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">
+                        <hr>
+                        <div class="form-horizontal">
+                            <div class="box-body margin">
+                                <table id="dataTable" class="table table-bordered table-hover">
+                                    <thead>
+                                    <tr>
+                                        <th></th>
+                                        <th>用户账号</th>
+                                        <th>项目名称</th>
+                                        <th>数据量</th>
+                                        <th>任务状态</th>
+                                        <th>完成进度</th>
+                                        <th>开始时间</th>
+                                        <th>完成时间</th>
+                                        <th>操作</th>
+                                    </tr>
+                                    </thead>
+                                </table>
+                            </div>
+                        </div>
+                    </div>
+                    <!-- /.box-body -->
+                </div>
+                <!-- /.box -->
+            </div>
+        </div>
+    </section>
+</div>
+
+{{include "com/footer.html"}}
+<script>
+    menuActive("group/task/list");
+
+    $(function () {
+        ttable = $('#dataTable').dataTable({
+            "paging": true,
+            "lengthChange": false,
+            "searching": true,
+            "ordering": false,
+            "info": true,
+            "autoWidth": false,
+            "serverSide": true,
+            "ajax": {
+                "url": "/front/group/task/list",
+                "type": "post",
+                "data": {"status": "-1"}
+            },
+            "language": {
+                "url": "/dist/js/dataTables.chinese.lang"
+            },
+            "fnDrawCallback": function () {
+                $("ul.pagination").prepend("&nbsp;&nbsp;&nbsp;转到第 <input type='text' id='changePage'   style='width:20px;'> 页    <a type='text' href='javascript:void(0);' id='dataTable-btn' style='text-align:center'>GO</a>");
+                $('#dataTable-btn').click(function (e) {
+                    var redirectpage = 0
+                    if ($("#changePage").val() && $("#changePage").val() > 0) {
+                        var redirectpage = $("#changePage").val() - 1;
+                    }
+                    ttable.page(redirectpage).draw(false);
+                });
+                this.api().column(0).nodes().each(function (cell, i) {
+                    cell.innerHTML = i + 1;
+                });
+            },
+            "columns": [
+                {"data": "", width: "1%"},
+                {"data": "s_personname", 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": "_id", width: "11%", render: function (val, a, row, pos) {
+                        tmp = '<div>' +
+                            '<a class="btn btn-sm btn-primary" onclick="editPro(\'' + pos.row + '\')">收回</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-warning" href="/front/project/clear?pid=' + val + '">质检</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-info" onclick="del(\'' + val + '\')">关闭</a>&nbsp;&nbsp;' +
+                            '</div>';
+                        return tmp
+                    }
+                }
+            ]
+        });
+
+        $('input[type=radio][name=stype]').change(function () {
+            if (this.value === 'coll') {
+                stype = "coll"
+                $("#import-coll").attr("style", "display:block;")
+                $("#import-excel").attr("style", "display:none;")
+            } else if (this.value === 'excel') {
+                stype = "excel"
+                $("#import-coll").attr("style", "display:none;")
+                $("#import-excel").attr("style", "display:block;")
+            }
+        });
+    });
+
+
+    function del(id) {
+        showConfirm("确定删除该用户组?", function () {
+            $.ajax({
+                url: "",
+                type: 'POST',
+                data: {"id": id},
+                success: function (r) {
+                    if (r.rep) {
+                        ttable.ajax.reload();
+                    } else {
+                        showTip("状态修改失败");
+                    }
+                }
+            })
+        })
+    }
+
+    function createPro() {
+       $("#modal-create-project").modal('show')
+    }
+
+    function cancelModel() {
+        document.getElementById("model-form-project").reset();
+        $("#modal-create-project").modal('hide')
+        $("#modal-edit-project").modal('hide')
+    }
+
+    function importData() {
+        if (stype === "coll") {
+            projectmap["s_name"] = $('#project-name').val()
+            projectmap["s_sourceinfo"] = $('#coll-save-name').val()
+            projectmap["s_type"] = stype
+            projectmap["s_historyid"] = $('#data-id').val()
+            $.ajax({
+                url: "/front/project/save",
+                type: 'POST',
+                data: projectmap,
+                success: function (r) {
+                    if (r.success) {
+
+                        $("#modal-create-project").modal('hide')
+                        ttable.api().ajax.reload();
+                    } else {
+
+                    }
+                }
+            })
+        } else if (stype === "excel") {
+            let formData = new FormData();
+            formData.append("s_name", $('#project-name').val())
+            formData.append("s_sourceinfo", $('#coll-save-name').val())
+            formData.append("s_historyid", $('#data-id').val())
+            formData.append("s_entname", $('#company-name').val())
+            formData.append("s_departname", $('#dpart-name').val())
+            formData.append("s_rulename", $('#rule-name').val())
+            formData.append("s_type", stype)
+            let file = $('#uploadfile')[0].files[0]
+            if (file) {
+                formData.append("xlsx", file)
+                $.ajax({
+                    url: "/front/project/save",
+                    type: 'POST',
+                    data: formData,
+                    cache: false,
+                    processData: false,
+                    contentType: false,
+                    success: function (r) {
+                        if (r.rep) {
+                            $("#modal-create-project").modal('hide')
+                            ttable.api().ajax.reload();
+                        } else {
+                            showTip("状态修改失败");
+                        }
+                    }
+                })
+            } else {
+                showTip("请选择上传文件");
+            }
+        }
+    }
+
+    function editPro(index) {
+        projectmap = ttable.fnGetData()[index]
+        console.log(projectmap)
+        $('#modal-edit-project').modal('show')
+        $('#company-edit-name').val(projectmap["s_entname"])
+        $('#rule-edit-name').val(projectmap["s_rulename"])
+        $('#dpart-edit-name').val(projectmap["s_departname"])
+    }
+
+    function saveData() {
+        stype = "edit"
+        let tmp = projectmap
+        tmp["s_entname"] = $('#company-edit-name').val()
+        tmp["s_rulename"] = $('#rule-edit-name').val()
+        tmp["s_departname"] = $('#dpart-edit-name').val()
+
+        let fieldArr = $('#markFieldSelect').val();
+        let m = {}
+        if (fieldArr.length > 0) {
+            for (const i in fields) {
+                if (fieldArr.indexOf(fields[i]["s_code"]) > -1) {
+                    m[fields[i]["s_code"]] = fields[i]["s_name"]
+                }
+            }
+        }
+        tmp["v_field"] = m
+        if (tmp !== projectmap) {
+            $.ajax({
+                url: "/front/project/save",
+                type: 'POST',
+                data: projectmap,
+                success: function (r) {
+                    if (r.rep) {
+                        ttable.api().ajax.reload();
+                    } else {
+                        showTip("保存失败");
+                    }
+                }
+            })
+        } else {
+            showTip("未做修改");
+        }
+    }
+
+</script>

+ 60 - 48
src/web/templates/project/task_list.html

@@ -9,7 +9,7 @@
             <small></small>
         </h1>
         <ol class="breadcrumb">
-            <li><a href="/front/project"><i class="fa fa-dashboard"></i> 项目列表</a></li>
+            <li><a href="#"><i class="fa fa-dashboard"></i> 任务列表</a></li>
         </ol>
     </section>
     <!-- Main content -->
@@ -20,37 +20,58 @@
                     <div class="box-body">
 
                         <div class="form-horizontal">
-                            <div class="box-body">
-                                <div class="form-group" style="margin-left: 20px">
-                                    <a class="btn btn-sm btn-success h4" onclick="createPro()"><i
-                                            class="fa fa-fw fa-plus fa-lg"></i>新建项目</a>
+                            <div class="box-body margin">
+                                <h3><i class="glyphicon glyphicon-exclamation-sign" style="margin-right: 6px"></i>数据情况
+                                </h3>
+                                <div class="form-group" style="margin-left: 15px">
+                                    <span class="form-inline panel-body">分发总量/数据总量(条):
+                                        <input type="text" class="form-control" readonly value="{{.T.allNoGiveDataNum}}/{{.T.allGiveDataNum}}">
+                                    </span>
+                                </div>
+                                <div class="form-group" style="margin-left: 10px">
+                                    <div class="col-xs-6" style="width: auto">
+                                        <label class="form-inline">数据总量:
+                                            <input type="text" class="form-control" style="width: 80px" readonly value="{{.T.allGiveDataNum}}"></label>
+                                        <label class="form-inline" style="margin-left: 20px">已分发:
+                                            <input type="text" class="form-control" style="width: 80px" readonly value="0"></label>
+                                        <label class="form-inline" style="margin-left: 20px">待分发:
+                                            <input type="text" class="form-control" style="width: 80px" readonly value="0"></label>
+                                        <label class="form-inline" style="margin-left: 20px">已标注:
+                                            <input type="text" class="form-control" style="width: 80px" readonly value="0"></label>
+                                    </div>
+                                    <div class="col-xs-6 form-group">
+                                        <label class="form-inline">操作:
+                                            <input type="button" class="btn btn-info" onclick="dispatchTak('0')" value="分发">
+                                            <input type="button" class="btn btn-primary" value="质检">
+                                            <input type="button" class="btn btn-success" value="质检结果">
+                                        </label>
+                                    </div>
                                 </div>
                             </div>
                         </div>
-                        <div class="col-xs-12">
-                            <select class="selectpicker" id="pushModelSelect">
-                                <option value=-1>全部</option>
-                                <option value=0>开启</option>
-                                <option value=1>关闭</option>
-                            </select>
+                        <hr>
+                        <div class="form-horizontal">
+                            <div class="box-body margin">
+                                <h3><i class="glyphicon glyphicon-tasks" style="margin-right: 6px"></i>数据清洗任务列表
+                                </h3>
+
+                                <table id="dataTable" class="table table-bordered table-hover">
+                                    <thead>
+                                    <tr>
+                                        <th></th>
+                                        <th>用户账号</th>
+                                        <th>项目名称</th>
+                                        <th>数据量</th>
+                                        <th>任务状态</th>
+                                        <th>完成进度</th>
+                                        <th>开始时间</th>
+                                        <th>完成时间</th>
+                                        <th>操作</th>
+                                    </tr>
+                                    </thead>
+                                </table>
+                            </div>
                         </div>
-                        <table id="dataTable" class="table table-bordered table-hover">
-                            <thead>
-                            <tr>
-                                <th></th>
-                                <th>公司名称</th>
-                                <th>部门名称</th>
-                                <th>规则名称</th>
-                                <th>项目名称</th>
-                                <th>售后人员</th>
-                                <th>数据量</th>
-                                <th>项目状态</th>
-                                <th>完成进度</th>
-                                <th>项目时间</th>
-                                <th>操作</th>
-                            </tr>
-                            </thead>
-                        </table>
                     </div>
                     <!-- /.box-body -->
                 </div>
@@ -236,11 +257,10 @@
 
 {{include "com/footer.html"}}
 <script>
-    menuActive("task");
+    menuActive("task/list");
 
     let stype = "coll";
     let fields = {{ .T.fields }}
-    let projectmap = {}
 
     $(function () {
         ttable = $('#dataTable').dataTable({
@@ -252,7 +272,7 @@
             "autoWidth": false,
             "serverSide": true,
             "ajax": {
-                "url": "/front/project",
+                "url": "",
                 "type": "post",
                 "data": {"status": "-1"}
             },
@@ -274,28 +294,20 @@
             },
             "columns": [
                 {"data": "", width: "1%"},
-                {"data": "s_entname", width: "5%"},
-                {"data": "s_departname", width: "4%"},
-                {"data": "s_rulename", width: "4%"},
-                {"data": "s_name", width: "4%"},
-                {"data": "s_personname", width: "4%"},
-                {"data": "i_importnum", width: "4%"},
-                {"data": "s_status", width: "4%"},
+                {"data": "s_personname", 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": "_id", width: "11%", render: function (val, a, row, pos) {
                         tmp = '<div>' +
-                            '<a class="btn btn-sm btn-primary" onclick="editPro(\'' + pos.row + '\')">编辑</a>&nbsp;&nbsp;' +
-                            '<a class="btn btn-sm btn-warning" href="/front/project/clear?pid=' + val + '">清洗</a>&nbsp;&nbsp;' +
-                            '<a class="btn btn-sm btn-info" onclick="del(\'' + val + '\')">判重</a>&nbsp;&nbsp;' +
-                            '<a class="btn btn-sm btn-default" href="">完成</a>&nbsp;&nbsp;<br>' +
-                            '<div style="margin-top: 5px">' +
-                            '<a class="btn btn-sm btn-primary" href="">上传</a>&nbsp;&nbsp;' +
-                            '<a class="btn btn-sm btn-primary" href="">下载</a>&nbsp;&nbsp;' +
-                            '<a class="btn btn-sm btn-primary" href="">扣费</a>&nbsp;&nbsp;' +
-                            '<a class="btn btn-sm btn-danger" href="">删除</a>&nbsp;&nbsp;' +
-                            '</div></div>';
+                            '<a class="btn btn-sm btn-primary" onclick="editPro(\'' + pos.row + '\')">收回</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-warning" href="/front/project/clear?pid=' + val + '">质检</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-info" onclick="del(\'' + val + '\')">关闭</a>&nbsp;&nbsp;' +
+                            '</div>';
                         return tmp
                     }
                 }

+ 191 - 0
src/web/templates/project/task_user_list.html

@@ -0,0 +1,191 @@
+{{include "com/inc.html"}}
+<!-- Main Header -->
+{{include "com/header.html"}}
+<!-- Left side column. 权限菜单 -->
+{{include "com/menu.html"}}
+<div class="content-wrapper">
+    <section class="content-header">
+        <h1>
+            <small></small>
+        </h1>
+        <ol class="breadcrumb">
+            <li><a href="#"><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">
+                        <hr>
+                        <div class="form-horizontal">
+                            <div class="box-body margin">
+                                <table id="dataTable" class="table table-bordered table-hover">
+                                    <thead>
+                                    <tr>
+                                        <th></th>
+                                        <th>用户账号</th>
+                                        <th>项目名称</th>
+                                        <th>数据量</th>
+                                        <th>任务状态</th>
+                                        <th>完成进度</th>
+                                        <th>开始时间</th>
+                                        <th>完成时间</th>
+                                        <th>操作</th>
+                                    </tr>
+                                    </thead>
+                                </table>
+                            </div>
+                        </div>
+                    </div>
+                    <!-- /.box-body -->
+                </div>
+                <!-- /.box -->
+            </div>
+        </div>
+    </section>
+</div>
+
+{{include "com/footer.html"}}
+<script>
+    menuActive("user/task/list");
+
+    $(function () {
+        ttable = $('#dataTable').dataTable({
+            "paging": true,
+            "lengthChange": false,
+            "searching": true,
+            "ordering": false,
+            "info": true,
+            "autoWidth": false,
+            "serverSide": true,
+            "ajax": {
+                "url": "/front/user/task/list",
+                "type": "post",
+                "data": {"status": "-1"}
+            },
+            "language": {
+                "url": "/dist/js/dataTables.chinese.lang"
+            },
+            "fnDrawCallback": function () {
+                $("ul.pagination").prepend("&nbsp;&nbsp;&nbsp;转到第 <input type='text' id='changePage'   style='width:20px;'> 页    <a type='text' href='javascript:void(0);' id='dataTable-btn' style='text-align:center'>GO</a>");
+                $('#dataTable-btn').click(function (e) {
+                    var redirectpage = 0
+                    if ($("#changePage").val() && $("#changePage").val() > 0) {
+                        var redirectpage = $("#changePage").val() - 1;
+                    }
+                    ttable.page(redirectpage).draw(false);
+                });
+                this.api().column(0).nodes().each(function (cell, i) {
+                    cell.innerHTML = i + 1;
+                });
+            },
+            "columns": [
+                {"data": "", width: "1%"},
+                {"data": "s_personname", 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": "_id", width: "11%", render: function (val, a, row, pos) {
+                        tmp = '<div>' +
+                            '<a class="btn btn-sm btn-primary" onclick="editPro(\'' + pos.row + '\')">收回</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-warning" href="/front/project/clear?pid=' + val + '">质检</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-info" onclick="del(\'' + val + '\')">关闭</a>&nbsp;&nbsp;' +
+                            '</div>';
+                        return tmp
+                    }
+                }
+            ]
+        });
+
+        $('input[type=radio][name=stype]').change(function () {
+            if (this.value === 'coll') {
+                stype = "coll"
+                $("#import-coll").attr("style", "display:block;")
+                $("#import-excel").attr("style", "display:none;")
+            } else if (this.value === 'excel') {
+                stype = "excel"
+                $("#import-coll").attr("style", "display:none;")
+                $("#import-excel").attr("style", "display:block;")
+            }
+        });
+    });
+
+
+    function del(id) {
+        showConfirm("确定删除该用户组?", function () {
+            $.ajax({
+                url: "",
+                type: 'POST',
+                data: {"id": id},
+                success: function (r) {
+                    if (r.rep) {
+                        ttable.ajax.reload();
+                    } else {
+                        showTip("状态修改失败");
+                    }
+                }
+            })
+        })
+    }
+
+    function createPro() {
+       $("#modal-create-project").modal('show')
+    }
+
+    function cancelModel() {
+        document.getElementById("model-form-project").reset();
+        $("#modal-create-project").modal('hide')
+        $("#modal-edit-project").modal('hide')
+    }
+
+    function editPro(index) {
+        projectmap = ttable.fnGetData()[index]
+        console.log(projectmap)
+        $('#modal-edit-project').modal('show')
+        $('#company-edit-name').val(projectmap["s_entname"])
+        $('#rule-edit-name').val(projectmap["s_rulename"])
+        $('#dpart-edit-name').val(projectmap["s_departname"])
+    }
+
+    function saveData() {
+        stype = "edit"
+        let tmp = projectmap
+        tmp["s_entname"] = $('#company-edit-name').val()
+        tmp["s_rulename"] = $('#rule-edit-name').val()
+        tmp["s_departname"] = $('#dpart-edit-name').val()
+
+        let fieldArr = $('#markFieldSelect').val();
+        let m = {}
+        if (fieldArr.length > 0) {
+            for (const i in fields) {
+                if (fieldArr.indexOf(fields[i]["s_code"]) > -1) {
+                    m[fields[i]["s_code"]] = fields[i]["s_name"]
+                }
+            }
+        }
+        tmp["v_field"] = m
+        if (tmp !== projectmap) {
+            $.ajax({
+                url: "/front/project/save",
+                type: 'POST',
+                data: projectmap,
+                success: function (r) {
+                    if (r.rep) {
+                        ttable.api().ajax.reload();
+                    } else {
+                        showTip("保存失败");
+                    }
+                }
+            })
+        } else {
+            showTip("未做修改");
+        }
+    }
+
+</script>