Browse Source

no message

Jianghan 3 years ago
parent
commit
2842a4d9e0

+ 1 - 1
src/front/user.go

@@ -46,7 +46,7 @@ func (f *Front) Login() {
 		//	return
 		//}
 		query := map[string]interface{}{
-			"s_name":     username,
+			"s_login":    username,
 			"s_password": passwordEn,
 		}
 		user, _ := Mgo.FindOne("s_user", query)

+ 356 - 10
src/web/templates/project/project_list.html

@@ -1,10 +1,356 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-  <meta charset="UTF-8">
-  <title>$Title$</title>
-</head>
-<body>
-$END$
-</body>
-</html>
+{{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="/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">
+
+            <div class="form-horizontal">
+              <div class="box-body">
+                <div class="form-group">
+                  <label class="col-sm-1 control-label">状态</label>
+                  <div class="col-sm-2">
+                    <select class="form-control selectpicker" id="pushModelSelect">
+                      <option value=-1>全部</option>
+                      <option value=0>开启</option>
+                      <option value=1>关闭</option>
+                    </select>
+                  </div>
+                  <div class="col-sm-2">
+                    <a class="btn btn-sm btn-success margin-r-5" onclick="">查询</a>
+                    <a class="btn btn-sm btn-default" onclick="">取消</a>
+                  </div>
+                </div>
+
+                <div class="form-group" style="margin-left: 20px">
+                  <a class="btn btn-sm btn-success margin" onclick="createPro()"><i class="fa fa-fw fa-plus fa-lg"></i>新建</a>
+                </div>
+              </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>
+        <!-- /.box -->
+      </div>
+    </div>
+  </section>
+</div>
+
+
+<div class="modal fade" id="modal-create-project" tabindex="-1" role="dialog" aria-hidden="true">
+  <div class="modal-dialog" style="width: 30%">
+    <div class="modal-content">
+      <div class="modal-header">
+        <div class="modal-header">
+          <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+          <div class="edit-info">
+            <span class="glyphicon glyphicon-alert" aria-hidden="true"></span>
+            <span class="h4">新建项目</span>
+          </div>
+          <div class="edit-form">
+            <hr>
+            <div class="form-group">
+              <label class="radio-inline">
+                <input type="radio" name="stype" value="coll" checked>数据库导入
+              </label>
+              <label class="radio-inline">
+                <input type="radio" name="stype" value="excel">Excel表导入
+              </label>
+            </div>
+            <form class="form-horizontal">
+              <div class="box-body">
+                <div class="form-group margin-bottom">
+                  <label class="col-sm-3 control-label"><span style="color:red;">* </span>项目名称</label>
+                  <div class="col-sm-5">
+                    <input type="text" class="form-control" id="project-name" placeholder="项目名称" required>
+                  </div>
+                </div>
+                <div id="import-coll">
+                  <h5><i class="fa fa-fw fa-angle-down bg-blue"></i>数据来源</h5>
+                  <div class="form-group">
+                    <label class="col-sm-3 control-label"><span style="color:red;">* </span>数据库名</label>
+                    <div class="col-sm-5">
+                      <input type="text" class="form-control" id="db-name" value="jyqyfw" readonly>
+                    </div>
+                  </div>
+                  <div class="form-group">
+                    <label class="col-sm-3 control-label"><span style="color:red;">* </span>数据表名</label>
+                    <div class="col-sm-5">
+                      <input type="text" class="form-control" id="coll-name" value="usermail_history" readonly>
+                    </div>
+                  </div>
+                  <div class="form-group">
+                    <label class="col-sm-3 control-label"><span style="color:red;">* </span>数据导出ID</label>
+                    <div class="col-sm-6">
+                      <input type="text" class="form-control" id="data-id" placeholder="数据导出ID" required>
+                    </div>
+                  </div>
+                </div>
+
+                <div id="import-excel" style="display: none">
+                  <h5><i class="fa fa-fw fa-angle-down bg-blue"></i>数据信息</h5>
+                  <div class="form-group">
+                    <label class="col-sm-3 control-label"><span style="color:red;">* </span>公司名称</label>
+                    <div class="col-sm-6">
+                      <input type="text" class="form-control" id="company-name" placeholder="公司名称" required>
+                    </div>
+                  </div>
+                  <div class="form-group">
+                    <label class="col-sm-3 control-label">部门名称</label>
+                    <div class="col-sm-6">
+                      <input type="text" class="form-control" id="dpart-name" placeholder="部门名称">
+                    </div>
+                  </div>
+                  <div class="form-group">
+                    <label class="col-sm-3 control-label">规则名称</label>
+                    <div class="col-sm-6">
+                      <input type="text" class="form-control" id="rule-name" placeholder="规则名称">
+                    </div>
+                  </div>
+                </div>
+
+                <h5><i class="fa fa-fw fa-angle-down bg-blue"></i>数据存储</h5>
+                <div class="form-group">
+                  <label class="col-sm-3 control-label"><span style="color:red;">* </span>数据库名</label>
+                  <div class="col-sm-6">
+                    <input type="text" class="form-control" id="db-save-name" placeholder="数据库名" required>
+                  </div>
+                </div>
+                <div class="form-group">
+                  <label class="col-sm-3 control-label"><span style="color:red;">* </span>数据表名</label>
+                  <div class="col-sm-6">
+                    <input type="text" class="form-control" id="coll-save-name" placeholder="数据表名" required>
+                  </div>
+                </div>
+              </div>
+
+            </form>
+          </div>
+        </div>
+      </div>
+      <div class="modal-footer">
+        <input type="button" onclick="importData()" class="btn btn-primary saveBtn" value="导入">
+        <input type="button" onclick="cancelModel()" class="btn btn-default" value="取消">
+      </div>
+      <iframe srcdoc="<form id='uploadform' method='post' enctype='multipart/form-data' action='/center/importbyexcel'>
+        <input type='file' name='xlsx' /><input type='input' id='excelcoll' name='excelcoll' /></form>"
+              height=0 class="hide" id="fileframe">
+      </iframe>
+    </div>
+  </div><!-- /.modal -->
+</div>
+
+<div class="modal fade" id="loadingModal" backdrop="static" keyboard="false">
+  <div style="width: 200px;height:100px; z-index: 20000; position: absolute; text-align: center; left: 50%; top: 50%;margin-left:-100px;margin-top:-10px">
+    <div class="progress progress-striped active"
+         style="margin-bottom: 0;height:50px; text-align:center;line-height: 50px;font-size:large;">
+      数据加载中,请稍候......    
+    </div>
+  </div>
+</div>
+
+{{include "com/footer.html"}}
+<script>
+  menuActive("group");
+
+  let stype = "coll";
+
+  $(function () {
+    ttable = $('#dataTable').dataTable({
+      "paging": true,
+      "lengthChange": false,
+      "searching": true,
+      "ordering": false,
+      "info": true,
+      "autoWidth": false,
+      "serverSide": true,
+      "ajax": {
+        "url": "/front/group",
+        "type": "post",
+        "data": {"ids": ""}
+      },
+      "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_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": "", width: "4%"},
+        {"data": "", width:"4%"},
+        {"data": "_id", width:"11%",render: function (val, a, row, pos) {
+            tmp = '<div>' +
+                    '<a class="btn btn-sm btn-primary" href="/front/group/edit?id='+val+'">清洗</a>&nbsp;&nbsp;'+
+                    '<a class="btn btn-sm btn-primary" href="">合并</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>'+
+                    '<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>';
+            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() {
+    $("#modal-create-project").modal('hide')
+  }
+
+  function importData() {
+    let pname = $('#project-name').val()
+    let savedb = $('#db-save-name').val()
+    let savecoll = $('#coll-save-name').val()
+    if (stype === "coll") {
+      $('#data-id').val()
+      $.ajax({
+        url: "/front/project/save",
+        type: 'POST',
+        data: {"id": id},
+        success: function (r) {
+          if (r.rep) {
+            ttable.ajax.reload();
+          } else {
+            showTip("状态修改失败");
+          }
+        }
+      })
+    }else if (stype === "excel") {
+      importbyexcel()
+    }
+  }
+  function importbyexcel(){
+    var importcoll = $("#importcoll").val();
+    if(importcoll == ""){
+      alert("请输入导入表!")
+      return
+    }
+    $("#excelcoll").val(importcoll);
+    $("#fileframe").contents().find("#excelcoll").val(importcoll);
+    var f=$("#fileframe").contents().find("input");
+    f.get(0).click();
+    f.change(function() {
+      var val = $(this).val() ? $(this).val() : "";
+      if (val.indexOf(".xlsx") < 0) {
+        showMsg("文件格式非法",
+                function() {});
+      } else {
+        $(this).parent().submit();
+        showLoading()
+        let ret = setInterval(function () {
+          let f = $(window.frames[0].document).find("form");
+          if (f.length === 0) {
+            hideLoading()
+            var b = $(window.frames[0].document).find("body").text();
+            if (b) {
+              var r = JSON.parse(b)
+              if (r) {
+                console.log(r.msg)
+                alert(r.msg)
+              } else {
+                alert("导入失败")
+              }
+            }
+            $(window.frames[0].document).find("body").append("<form id='uploadform' method='post' enctype='multipart/form-data' action='/center/importbyexcel'><input type='file' name='xlsx' /><input type='input' id='excelcoll' name='excelcoll' /></form>");
+          }
+        }, 500);
+      }
+    })
+  }
+  //展示loading框
+  showLoading = function (){
+    $('#loadingModal').modal({backdrop: 'static', keyboard: false});
+  }
+  //隐藏掉loading框
+  hideLoading = function (){
+    $('#loadingModal').modal('hide');
+  }
+
+</script>

+ 30 - 5
src/web/templates/user/user_group.html

@@ -42,8 +42,8 @@
 
                                 <div class="form-group" style="margin-left: 20px">
                                     <a class="btn btn-sm btn-success margin" href="/front/group/new"><i class="fa fa-fw fa-plus fa-lg"></i>新建用户组</a>
-                                    <a class="btn btn-sm btn-default margin" onclick="">批量开启</a>
-                                    <a class="btn btn-sm btn-default margin" onclick="">批量关闭</a>
+                                    <a class="btn btn-sm btn-default margin" onclick="bulkSetup(true)">批量开启</a>
+                                    <a class="btn btn-sm btn-default margin" onclick="bulkSetup(false)">批量关闭</a>
                                 </div>
                             </div>
                         </div>
@@ -72,8 +72,13 @@
 {{include "com/footer.html"}}
 <script>
     menuActive("group");
+
+    let selectIndex = [];               //选中的编号
+    let keyTableChecked = false;        //关键词表格数据是否有选中
+    let keyTableAllChecked = true;      //表单数据是否被全选中
+
     $(function () {
-        ttable = $('#dataTable').DataTable({
+        ttable = $('#dataTable').dataTable({
             "paging": true,
             "lengthChange": false,
             "searching": false,
@@ -177,11 +182,12 @@
     //表格全选
     function allSelect(obj) {
         if ($(obj).is(':checked')) {
+            selectIndex.length = 0;
             keyTableChecked = true;
             keyTableAllChecked = true;
             $('input[name="ckb-keyid"]').each(function () {
                 this.checked = true;
-                selectIndex.push($(this).parents("tr").index() + 1);
+                selectIndex.push(ttable.fnGetData()[$(this).parents("tr").index()]["_id"]);
             })
         } else {
             selectIndex.length = 0;
@@ -191,6 +197,8 @@
                 this.checked = false;
             })
         }
+
+        console.log(selectIndex)
     }
 
     //表格单个选中
@@ -200,7 +208,7 @@
         $('input[name="ckb-keyid"]').each(function () {
             if (this.checked) {
                 keyTableChecked = true;
-                selectIndex.push($(this).parents("tr").index() + 1);
+                selectIndex.push(ttable.fnGetData()[$(this).parents("tr").index()]["_id"]);
             }else {
                 tag = false
             }
@@ -212,6 +220,23 @@
             keyTableAllChecked = false;
             $('#allCheckbox').prop("checked", false);
         }
+
+        console.log(selectIndex)
+    }
+
+    function bulkSetup(val) {
+        $.ajax({
+            url: "/front/group/bulks_setup",
+            type: 'POST',
+            data: {"ids": selectIndex.toString(), "state": val},
+            success: function (r) {
+                if (r.rep) {
+                    ttable.api().ajax.reload()
+                } else {
+                    showTip("状态修改失败");
+                }
+            }
+        })
     }
 
 </script>

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

@@ -212,11 +212,12 @@
     //表格全选
     function allSelect(obj) {
         if ($(obj).is(':checked')) {
+            selectIndex.length = 0;
             keyTableChecked = true;
             keyTableAllChecked = true;
             $('input[name="ckb-keyid"]').each(function () {
                 this.checked = true;
-                selectIndex.push($(this).parents("tr").index() + 1);
+                selectIndex.push($(this).parents("tr").index());
             })
         } else {
             selectIndex.length = 0;
@@ -235,7 +236,7 @@
         $('input[name="ckb-keyid"]').each(function () {
             if (this.checked) {
                 keyTableChecked = true;
-                selectIndex.push($(this).parents("tr").index() + 1);
+                selectIndex.push($(this).parents("tr").index());
             }else {
                 tag = false
             }
@@ -262,7 +263,6 @@
 
     function modifySave() {
         let id = $("#user-id").val()
-        console.log(id)
         let name = $("#user-name").val()
         let phone = $("#user-contract").val()
         if (name !== "" || phone !== "") {