liuxiaolu 6 年之前
父节点
当前提交
f8bf0e910d
共有 3 个文件被更改,包括 306 次插入99 次删除
  1. 74 3
      src/jfw/front/dataExport.go
  2. 24 10
      src/web/staticres/dataExport/js/conditions_order.js
  3. 208 86
      src/web/templates/pc/dataExport_sieve.html

+ 74 - 3
src/jfw/front/dataExport.go

@@ -1,10 +1,16 @@
 package front
 
-import "github.com/go-xweb/xweb"
+import (
+	"github.com/go-xweb/xweb"
+	"log"
+	"strings"
+	"encoding/json"
+)
 
 type DataExport struct {
 	*xweb.Action
-	toSieve xweb.Mapper `xweb:"/front/dataExport/toSieve"` //数据导出-条件筛选
+	toSieve   xweb.Mapper `xweb:"/front/dataExport/toSieve"`   //数据导出-条件筛选
+	sieveData xweb.Mapper `xweb:"/front/dataExport/sieveData"` //筛选数据
 }
 
 func init() {
@@ -12,6 +18,71 @@ func init() {
 }
 
 func (d *DataExport) ToSieve() error {
-	d.Render("/pc/dataExport_sieve.html")
+	industrylist, sortArray = getindustrys()
+	d.T["industrylist"] = industrylist
+	d.T["sortArray"] = sortArray
+	d.Render("/pc/dataExport_sieve.html", &d.T)
 	return nil
 }
+
+func (d *DataExport) SieveData() error {
+	publishtime := d.GetString("publishtime")
+	area := d.GetString("area")
+	industry := d.GetString("industry")
+	keyword := d.GetString("keyword")
+	buyer := d.GetString("buyer")
+	winner := d.GetString("winner")
+
+	var areaArr []string
+	var industryArr []string
+	var buyerArr []string
+	var winnerArr []string
+	var keywordList []KeyWord
+
+	if publishtime != "" {
+		log.Println("publishtime", publishtime)
+	}
+	if area != "" {
+		areaArr = strings.Split(area, ",")
+		log.Println("areaArr", areaArr)
+	}
+	if industry != "" {
+		industryArr = strings.Split(industry, ",")
+		log.Println("industryArr", industryArr)
+	}
+	log.Println("keywordParam", keyword)
+	if keyword != "" {
+		err := json.Unmarshal([]byte(keyword), &keywordList)
+		if err != nil {
+			log.Println("keyword param 反序列化异常,查看前后台字段是否对应")
+		} else {
+			log.Println("keywordList", len(keywordList), keywordList)
+		}
+	}
+	if buyer != "" {
+		buyerArr = strings.Split(buyer, ",")
+		log.Println("buyerArr", buyerArr)
+	}
+	if winner != "" {
+		winnerArr = strings.Split(winner, ",")
+		log.Println("winnerArr", winnerArr)
+	}
+
+	sieveCondition := map[string]interface{}{
+		"publishtime": publishtime,
+		"area":        areaArr,
+		"industry":    industryArr,
+		"keyword":     keywordList,
+		"buyer":       buyerArr,
+		"winner":      winnerArr,
+	}
+	reS := mongodb.Save("sieveCondition", sieveCondition)
+	log.Println("save ", reS)
+	return nil
+}
+
+type KeyWord struct {
+	Keyword  string   `json:"keyword"`  //关键词
+	Appended []string `json:"appended"` //附加词
+	Exclude  []string `json:"exclude"`  //排除词
+}

+ 24 - 10
src/web/staticres/dataExport/js/conditions_order.js

@@ -16,6 +16,7 @@ function showMoreCity (arr) {
   var box = $('.dialog>.select-area-box')
   var tempHTML = ''
   box.html(tempHTML)
+  tempHTML += '<span class="select-area" style="margin-right: 10px;">全省</span>';
   console.log('--arr--', arr)
   arr.forEach(function (value) {
     console.log('--value--', value.name)
@@ -30,6 +31,9 @@ $(document).on('click','span.select-area', function () {
   if(t === '全国'){
     return addDelBox(t,'#area-del')
   }
+  if(t === '全省'){
+      t = selectAreaNow;
+  }
   /* 判断来源 */
   var f = dom.parent().parent().hasClass('dialog')
   if(f) {
@@ -79,9 +83,19 @@ $(document).on('click','.delete-close>i',function () {
   window[arr].splice(index,1)
   dom.remove()
 })
+/*移除delBox*/
+function removeDelBox(select) {
+  if(select=="全国"){
+    $("#area-del").empty();
+  }else if (select=="全省"){
+
+  }else{
+
+  }
+}
 /* 添加可删除标签 */
 function addDelBox(str,box,arr,template){
-  console.log('--template,arr--', template,arr)
+  // console.log('--template,arr--', template,arr)
   arr = arr || 'selectArea'
   var tempKey = arr ? 'data-arr="'+arr+'"' : ''
   template = template || '<div '+tempKey+' class="delete-close">'+str+'<i class="iconfont icon-guanbi"></i></div>'
@@ -121,28 +135,28 @@ $(".user-input input").on('input',function () {
   }
 })
 /* 生成子标签 */
-function createCKey(title,arr) {
+function createCKey(title,arr,clazz) {
   if(arr.length === 0) {
     return ''
   }
   var all = arr.map(function (value) {
     return '<span>'+value+'</span>'
   }).join('')
-  return '<div class="text-box float-box"><div class="title">'+title+':</div><div class="title-other float-box">'+all+'</div></div>'
+  return '<div class="text-box float-box '+clazz+'"><div class="title">'+title+':</div><div class="title-other float-box">'+all+'</div></div>'
 }
 /* 添加关键词标签 */
 function createKeyBox(t) {
   var appArr = appendArr
   var exArr = excludeArr
   var key = t
-  var all = createCKey('关键词',[key]) + createCKey('附加词',appArr) + createCKey('排除词',exArr)
+  var all = createCKey('关键词',[key],"key") + createCKey('附加词',appArr,"app") + createCKey('排除词',exArr,"ex")
   var template = '<div data-index="'+keyAllArr.length+'" data-arr="inputDel_0" class="delete-close">'+all+' <i class="iconfont icon-guanbi"></i> </div>'
   return template
 }
 /* 添加可删除Input标签 */
 function addDelInput(t,type) {
   var text = $(t).prev().val()
-  console.log('--text--', text)
+  // console.log('--text--', text)
   var box = 'inputDel_' + type
   var template = null
   var arr = box
@@ -179,7 +193,7 @@ function addOtherInput(t,f) {
   var input = document.createElement('input')
   input.className = 'sm'
   input.placeholder = temp
-  console.log('--$(input)--', $(input))
+  // console.log('--$(input)--', $(input))
   if(f){
     var l = appendArr.length
     $(input).on('input',function () {
@@ -197,12 +211,12 @@ function addOtherInput(t,f) {
 var nowSpan = null
 $(document).on('click','#inputDel_0 .title-other>span',function (e) {
   var xy = $(this).offset()
-  console.log('--xy--', xy)
+  // console.log('--xy--', xy)
   var x = xy.top + 30
   var maxY = $(document).width() - 600
   var y = maxY < xy.left ? maxY : xy.left
   nowSpan = $(this)
-  console.log('--$(this).offset()--', xy)
+  // console.log('--$(this).offset()--', xy)
   var text = $(this).text()
   $('.edit-user-input').children('.up-icon').css({
     left: xy.left - y + 'px'
@@ -211,7 +225,7 @@ $(document).on('click','#inputDel_0 .title-other>span',function (e) {
     top: x + 'px',
     left: y + 'px'
   }).show().children('input').val(text)
-  console.log('--text--', text)
+  // console.log('--text--', text)
 })
 /* 修改关键词标签文字 */
 $(".edit-user-input").click(function (e) {
@@ -236,7 +250,7 @@ function editInput(t,f){
   hideEdit()
 }
 /*行业筛选*/
-industryScreening($(".industry  .industry-content"), $(".industry-content .parent-node"), $("#induAll"), $(".industry .stop"))
+//industryScreening($(".industry  .industry-content"), $(".industry-content .parent-node"), $("#induAll"), $(".industry .stop"))
 /*
  * warpContent 外层元素
  * parentNode  标题父元素

+ 208 - 86
src/web/templates/pc/dataExport_sieve.html

@@ -2,11 +2,13 @@
 <html lang="zh-Hans">
 <head>
     <meta charset="UTF-8">
-    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
+    <meta name="viewport"
+          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     <link rel="stylesheet" href="//at.alicdn.com/t/font_624651_c3e1rnkx3cn.css">
     <link rel="stylesheet" href="/dataExport/css/reset_pc.css">
     <link rel="stylesheet" href="/dataExport/css/conditions.css">
+    <script language="javascript" type="text/javascript" src="/My97DatePicker/WdatePicker.js"></script>
     <title>条件筛选</title>
 </head>
 <body>
@@ -30,13 +32,17 @@
             <div class="left">筛选日期</div>
             <div class="right">
                 <div class="float-box">
-                    <button class="u-select select">2018全年</button>
-                    <button class="u-select">2017全年</button>
-                    <button class="u-select">2017年至今</button>
-                    <button class="u-select">2016年至今</button>
-                    <div class="select-date" data-text="请输入开始日期"></div>
+                    <button class="u-select select" data-value="2018">2018全年</button>
+                    <button class="u-select" data-value="2017">2017全年</button>
+                    <button class="u-select" data-value="2017_toNow">2017年至今</button>
+                    <button class="u-select" data-value="2016_toNow">2016年至今</button>
+                    <div class="select-date" data-text="开始日期"
+                         onClick="WdatePicker({onclearing:function(){onclearing(this)},onpicked:function(dp){picked(dp,this)},onpicking:function(dp){onpicking(dp,this)},dateFmt:'yyyy年MM月dd日',maxDate:'#F{$dp.$D(\'endtime\')}'})"
+                         id="starttime" readonly="true"></div>
                     <div class="split-line">—</div>
-                    <div class="select-date" data-text="请输入结束日期"></div>
+                    <div class="select-date" data-text="结束日期"
+                         onClick="WdatePicker({onclearing:function(){onclearing(this)},onpicked:function(dp){picked(dp,this)},onpicking:function(dp){onpicking(dp,this)},dateFmt:'yyyy年MM月dd日',minDate:'#F{$dp.$D(\'starttime\')}'})"
+                         id="endtime" readonly="true"></div>
                 </div>
             </div>
         </div>
@@ -46,7 +52,25 @@
             <div class="right">
                 <div class="del-box float-box" id="area-del"></div>
                 <div class="select-area-box float-box">
-                    <span class="select-area">全国</span><span>A</span><span class="select-area">安徽</span><span>B</span><span class="select-area">北京</span><span>C</span><span class="select-area">重庆</span><span>F</span><span class="select-area">福建</span><span>G</span><span class="select-area">广东</span><span class="select-area">广西</span><span class="select-area">贵州</span><span class="select-area">甘肃</span><span>H</span><span class="select-area">河北</span><span class="select-area">湖北</span><span class="select-area">黑龙江</span><span class="select-area">海南</span><span class="select-area">河南</span><span class="select-area">湖南</span><span>J</span><span class="select-area">吉林</span><span class="select-area">江苏</span><span class="select-area">江西</span><span>L</span><span class="select-area">辽宁</span><span>N</span><span class="select-area">内蒙古</span><span class="select-area">宁夏</span><span>Q</span><span class="select-area">青海</span><span>S</span><span class="select-area">山西</span><span class="select-area">陕西</span><span class="select-area">上海</span><span class="select-area">山东</span><span class="select-area">四川</span><span>T</span><span class="select-area">天津</span><span>X</span><span class="select-area">西藏</span><span class="select-area">新疆</span><span>Y</span><span class="select-area">云南</span><span>Z</span><span class="select-area">浙江</span>
+                    <span class="select-area">全国</span><span>A</span><span
+                        class="select-area">安徽</span><span>B</span><span
+                        class="select-area">北京</span><span>C</span><span
+                        class="select-area">重庆</span><span>F</span><span
+                        class="select-area">福建</span><span>G</span><span class="select-area">广东</span><span
+                        class="select-area">广西</span><span class="select-area">贵州</span><span
+                        class="select-area">甘肃</span><span>H</span><span class="select-area">河北</span><span
+                        class="select-area">湖北</span><span class="select-area">黑龙江</span><span
+                        class="select-area">海南</span><span class="select-area">河南</span><span
+                        class="select-area">湖南</span><span>J</span><span class="select-area">吉林</span><span
+                        class="select-area">江苏</span><span class="select-area">江西</span><span>L</span><span
+                        class="select-area">辽宁</span><span>N</span><span class="select-area">内蒙古</span><span
+                        class="select-area">宁夏</span><span>Q</span><span
+                        class="select-area">青海</span><span>S</span><span class="select-area">山西</span><span
+                        class="select-area">陕西</span><span class="select-area">上海</span><span
+                        class="select-area">山东</span><span class="select-area">四川</span><span>T</span><span
+                        class="select-area">天津</span><span>X</span><span class="select-area">西藏</span><span
+                        class="select-area">新疆</span><span>Y</span><span
+                        class="select-area">云南</span><span>Z</span><span class="select-area">浙江</span>
                 </div>
                 <div class="dialog" style="display: none">
                     <div class="select-area-box float-box"></div>
@@ -59,7 +83,7 @@
         </div>
         <!--行业-->
         <div class="line-box float-box" style="padding-bottom: 0">
-            <div class="left"  style="padding-top: 8px">行业</div>
+            <div class="left" style="padding-top: 8px">行业</div>
             <div class="right">
                 <div class="industry">
                     <!--收起-->
@@ -67,80 +91,6 @@
                         更多
                     </div>
                     <div class="industry-content">
-                        <span id="induAll" class="active">全部</span>
-                        <i class="diver"></i>
-                        <font class="parent-node ">建筑工程</font>
-                        <font>勘察设计</font>
-                        <font>工程施工</font>
-                        <font>工程监理</font>
-                        <font>材料设备</font>
-                        <i class="diver"></i>
-                        <font class="parent-node">水利水电</font>
-                        <font>水利工程</font>
-                        <font>发电工程</font>
-                        <font>航运工程</font>
-                        <font>其他工程</font>
-                        <i class="diver"></i>
-                        <font class="parent-node">能源化工</font>
-                        <font>原材料</font>
-                        <font>仪器仪表</font>
-                        <font>设备</font>
-                        <font>化工产品</font>
-                        <font>新能源</font>
-                        <i class="diver"></i>
-                        <font class="parent-node">弱电安防</font>
-                        <font>综合布线</font>
-                        <font>智能系统</font>
-                        <font>智能家居</font>
-                        <i class="diver"></i>
-                        <font class="parent-node">信息技术</font>
-                        <font>系统集成及安全</font>
-                        <font>软件开发</font>
-                        <font>运维服务</font>
-                        <font>其他</font>
-                        <i class="diver"></i>
-                        <font class="parent-node">行政办公</font>
-                        <font>办公家具</font>
-                        <font>通用办公设备</font>
-                        <font>专业设备</font>
-                        <font>办公用品</font>
-                        <i class="diver"></i>
-                        <font class="parent-node">机械设备</font>
-                        <font>农业机械 </font>
-                        <font>矿山机械</font>
-                        <font>工程机械</font>
-                        <font>机械零部件 </font>
-                        <font>机床</font>
-                        <font>车辆</font>
-                        <font>其他机械设备</font>
-                        <i class="diver"></i>
-                        <font class="parent-node">交通工程</font>
-                        <font>道路工程 </font>
-                        <font>轨道工程</font>
-                        <font>桥梁工程</font>
-                        <font>隧道工程 </font>
-                        <font>其他工程</font>
-                        <i class="diver"></i>
-                        <font class="parent-node">医疗卫生</font>
-                        <font>设备 </font>
-                        <font>耗材</font>
-                        <font>药品</font>
-                        <i class="diver"></i>
-                        <font class="parent-node">市政设施</font>
-                        <font>市政道路</font>
-                        <font>市政绿化</font>
-                        <font>管网线路</font>
-                        <font>综合项目</font>
-                        <i class="diver"></i>
-                        <font class="parent-node">服务采购</font>
-                        <font>法律咨询</font>
-                        <font>会计服务</font>
-                        <font>物业服务</font>
-                        <font>审计服务</font>
-                        <font>安保服务</font>
-                        <font>物流服务</font>
-                        <font>其他服务</font>
-
                     </div>
                 </div>
             </div>
@@ -170,7 +120,7 @@
                     <div class="up-icon"></div>
                     <input class="sm" type="text" placeholder="请输入修改文字">
                     <button class="sussecc w100" onclick="editInput(this,true)">确定</button>
-                    <button  class="w100" onclick="editInput(this,false)">删除</button>
+                    <button class="w100" onclick="editInput(this,false)">删除</button>
                 </div>
             </div>
         </div>
@@ -196,9 +146,9 @@
                 </div>
             </div>
         </div>
-        <!--确定区域-->
+        <!--确定筛选-->
         <div class="button-box">
-            <button class="sussecc">确定</button>
+            <button class="sussecc" id="sieve">确定</button>
             <button>重置</button>
         </div>
     </div>
@@ -208,4 +158,176 @@
 <script src="/dataExport/js/mapJSON.js"></script>
 <script src="/dataExport/js/conditions_order.js"></script>
 </body>
+<script>
+    var industrylist = {{.T.industrylist}};
+    var sortArray = {{.T.sortArray}};
+    $(function () {
+        //行业
+        var industryhtml = '<span id="induAll" class="active">全部</span>';
+        if (sortArray != null && sortArray.length > 0) {
+            for (var i in sortArray) {
+                var fat = sortArray[i];
+                var childlist = industrylist[fat];
+                industryhtml += '<i class="diver"></i><font class="parent-node">' + fat + '</font>';
+                for (var j in childlist) {
+                    industryhtml += '<font data-value="' + fat + '_' + childlist[j] + '" style="display: none;">' + childlist[j] + '</font>';
+                }
+            }
+            $(".industry-content").html(industryhtml);
+            /*行业筛选*/
+            industryScreening($(".industry  .industry-content"), $(".industry-content .parent-node"), $("#induAll"), $(".industry .stop"));
+        }
+    });
+
+    $(".u-select").click(function () {
+        $(".u-select").removeClass("select");
+        $(this).addClass("select");
+    });
+
+    //datepicker start-------------
+    function onpicking(dp, obj) {
+        var time = new Date(dp.cal.newdate.y, dp.cal.newdate.M - 1, dp.cal.newdate.d).getTime() + "";
+        time = time.substring(0, time.length - 3);
+        $(obj).attr("data-text", "");
+        $(obj).attr("data-value", time);
+        if ($("#starttime").attr("data-value") && $("#endtime").attr("data-value")) {
+            $(".u-select").removeClass("select");
+        }
+    }
+
+    function onclearing(obj) {
+        $(obj).attr("data-value", "");
+        if ($(obj).attr("id") == "starttime") {
+            $(obj).attr("data-text", "开始时间");
+        } else {
+            $(obj).attr("data-text", "结束时间");
+        }
+        if ($(".customtime").hasClass("active") && getInputTime().join("") == "") {
+            $(".customtime").removeClass("active");
+            $("#publishtime #alltime").addClass("active");
+        }
+        //
+        if (!$("#starttime").attr("data-value") || !$("#endtime").attr("data-value")) {
+            $(".u-select").first().addClass("select");
+        }
+    }
+
+    function picked(dp, obj) {
+    }
+
+    //datepicker end-------------
+
+    //日期
+    function getDate() {
+        var start;
+        var end;
+        if ($(".u-select").hasClass("select")) {
+            var temp = $(".u-select.select").data("value") + "";
+            if (temp) {
+                if (temp.indexOf("_toNow") > 0) {
+                    start = new Date(temp.split("_")[0] + "-01-01 00:00:00").getTime() / 1000;
+                    end = parseInt(new Date().getTime() / 1000);
+                } else {
+                    start = new Date(temp.split("_")[0] + "-01-01 00:00:00").getTime() / 1000;
+                    end = new Date(temp.split("_")[0] + "-12-31 23:59:59").getTime() / 1000;
+                }
+            }
+        } else {
+            start = $("#starttime").data("value");
+            end = $("#endtime").data("value");
+        }
+        return start + "_" + end;
+    }
+
+    //区域
+    function getAreas() {
+        var arr = new Array();
+        $.each($("#area-del").children("div"), function (index, value) {
+            if ($(value).text()) {
+                arr.push($(value).text())
+            }
+        });
+        return arr;
+    }
+
+    //行业
+    function getIndustries() {
+        var arr = new Array();
+        $.each($(".industry-content").children("font[class='active']"), function (index, value) {
+            console.log($(value).data("value"));
+            var obj = $(value);
+            if (obj) {
+                arr.push(obj.data("value"));
+            }
+        });
+        return arr;
+    }
+
+    //关键词
+    function getKeywords() {
+        var re = new Array();
+        $.each($("#inputDel_0").find("div[data-arr='inputDel_0']"), function (index, value) {
+            var obj = $(value);
+            var key = obj.children(".key").find("div:eq(1) span").text();
+            var appArr = new Array();
+            var exArr = new Array();
+            $.each(obj.children(".app").find("div:eq(1) span"), function (i, v) {
+                if ($(v).text()) {
+                    appArr.push($(v).text());
+                }
+            });
+            $.each(obj.children(".ex").find("div:eq(1) span"), function (i, v) {
+                if ($(v).text()) {
+                    exArr.push($(v).text());
+                }
+            });
+            re.push({"keyword": key, "appended": appArr, "exclude": exArr});
+        });
+        return re;
+    }
+
+    //采购单位
+    function getBuyers() {
+        var arr = new Array();
+        $.each($("#inputDel_1").children("div"), function (index, value) {
+            if ($(value).text()) {
+                arr.push($(value).text())
+            }
+        });
+        return arr;
+    }
+
+    //中标单位
+    function getWinners() {
+        var arr = new Array();
+        $.each($("#inputDel_2").children("div"), function (index, value) {
+            if ($(value).text()) {
+                arr.push($(value).text())
+            }
+        });
+        return arr;
+    }
+
+    $("#sieve").click(function () {
+        var date = getDate();
+        var area = getAreas();
+        var industry = getIndustries();
+        var keyword = getKeywords();
+        var buyer = getBuyers();
+        var winner = getWinners();
+
+        var param = {
+            "publishtime": date,
+            "area": area.toString(),
+            "industry": industry.toString(),
+            "keyword": JSON.stringify(keyword),
+            "buyer": buyer.toString(),
+            "winner": winner.toString()
+        };
+        console.log(param);
+        $.post("/front/dataExport/sieveData", param, function (data) {
+
+        }, 'json');
+    });
+</script>
 </html>