wangshan 5 жил өмнө
parent
commit
3a6850b500

+ 46 - 1
src/jfw/front/ws_dataExport.go

@@ -28,13 +28,56 @@ type WsDataExport struct {
 	paySuccessPage xweb.Mapper `xweb:"/front/wx_dataExport/paySuccessPage"` //微信数据导出-支付成功页面
 	getPayParm     xweb.Mapper `xweb:"/front/wx_dataExport/getPayParm"`     //微信数据导出-获取微信支付参数
 	//微信端支付
-	toCreateOrderPage xweb.Mapper `xweb:"/weixin/pay/dataexport"` //微信数据导出-订单微信支付
+	toCreateOrderPage xweb.Mapper `xweb:"/weixin/pay/dataexport"`          //微信数据导出-订单微信支付
+	getPreview        xweb.Mapper `xweb:"/front/wx_dataExport/getPreview"` //微信数据导出-预览数据
 }
 
 func init() {
 	xweb.AddAction(&WsDataExport{})
 }
 
+//
+func (w *WsDataExport) GetPreview() error {
+	userId := util.ObjToString(w.GetSession("userId"))
+	if userId == "" {
+		return errors.New("未登录")
+	}
+	_res := make(map[string]interface{})
+	//数据预览每天限制50次
+	incurKey := fmt.Sprintf("PreviewData_%s_%d", w.GetSession("userId"), time.Now().Day())
+	times := util.IntAll(redis.Get("other", incurKey))
+	if times >= 50 {
+		_res["msg"] = "超出预览次数"
+		w.ServeJson(map[string]interface{}{
+			"res": _res,
+		})
+		return nil
+	}
+	if times == 0 {
+		redis.Put("other", incurKey, 1, 24*60*60)
+	} else {
+		redis.Incr("other", incurKey)
+	}
+	_id := util.SE.Decode4Hex(w.GetString("_id"))
+	dataType := w.GetString("dataType")
+	//从500条数据中筛选字段最全五条
+	res := public.GetDataExportSearchResultUseId(_id, dataType, -1)
+	if res == nil {
+		w.Render("/pc/dataExport_noDataErr.html", &w.T)
+		log.Println("PreviewData查询出错")
+		return nil
+	}
+	//格式化字段
+	res_screen := public.ScreenData(res, dataType, 20)
+	list := public.FormatExportData(&res_screen, config.Sysconfig["webdomain"].(string), dataType, true)
+	_res["data"] = subUrl(list, dataType)
+	_res["dataType"] = dataType
+	w.ServeJson(map[string]interface{}{
+		"res": _res,
+	})
+	return nil
+}
+
 //
 func (w *WsDataExport) GetPayParm() error {
 	defer util.Catch()
@@ -167,6 +210,8 @@ func (w *WsDataExport) ToPreview(_id string) error {
 		userid = util.ObjToString(w.GetSession("userId"))
 	}
 	w.T["id"] = _id
+	w.T["dataType"] = w.GetString("dataType")
+	w.T["ttf"] = public.GetFontVersion() + "_" + public.PC
 	return w.Render("/weixin/dataExport/dataExport_previewData.html")
 }
 

+ 1 - 0
src/jfw/modules/app/src/web/staticres/jyapp/js/common.js

@@ -31,6 +31,7 @@ $(function(){
 		$target.trigger("tap",e);
     });
 	$(".app-layout-header .app-back").unbind("tap").on("tap",function(){
+		$(".app-layout-header .app-back").unbind("tap");
 		if(typeof(clickBack)=="function"){
 			clickBack();
 		}else{

+ 1 - 1
src/jfw/modules/app/src/web/templates/common/js.html

@@ -1,2 +1,2 @@
 <script src="/jyapp/js/rem.js?v={{Msg "seo" "version"}}" type="text/javascript" charset="utf-8"></script>
-<script src="/jyapp/js/common.js?v={{Msg "seo" "version"}}"></script>
+<script src="/jyapp/js/common.js?v={{Msg "seo" "version"}}1"></script>

+ 3 - 0
src/jfw/modules/app/src/web/templates/dataExport/dataExport_payOrder.html

@@ -21,6 +21,9 @@
 		    left: 0px;
 		    right: 0px;
 		}
+		.weui-check__label:active {
+		    background-color: #fff;
+		}
 		</style>
 	</head>
   <body>

+ 2 - 1
src/jfw/modules/app/src/web/templates/weixin/search/mainSearch.html

@@ -816,7 +816,8 @@
 		//}
 		
 		//历史数据导出
-	    $(".content ul li a:eq(2)").unbind("tap").on("tap",function(){
+	    $(".content ul li a:eq(2)").unbind("tap").on("tap",function(event){
+			event.stopPropagation();
 			setTimeout(function(){
 				window.location.href='/jyapp/front/dataExport/toSieve';
 			},100);

+ 3 - 1
src/web/staticres/wx_dataExport/css/pay_order.css

@@ -476,7 +476,9 @@ letter-spacing: 0.02rem;
 #pay_order #codeinput #devinput{
 	right: 2.3rem !important;
 }
-
+.weui-check__label:active {
+    background-color: #fff !important;
+}
 
 body .loading_ {
     height: 100%;

+ 3 - 2
src/web/templates/weixin/dataExport/dataExport_payOrder.html

@@ -10,7 +10,7 @@
         <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/wx_dataExport/css/weui.min.css?v={{Msg "seo" "version"}}">
         <link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/wx_dataExport/css/base.css?v={{Msg "seo" "version"}}" />
         <link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/wx_dataExport/iconfont/iconfont.css?v={{Msg "seo" "version"}}" />
-        <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/wx_dataExport/css/pay_order.css?v={{Msg "seo" "version"}}2">
+        <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/wx_dataExport/css/pay_order.css?v={{Msg "seo" "version"}}21">
         <script src="{{Msg "seo" "cdn"}}/js/jquery-3.2.1.min.js"></script>
         <script src="{{Msg "seo" "cdn"}}/wx_dataExport/js/weui.min.js"></script>
 		{{include "/common/weixin.html"}}
@@ -513,7 +513,8 @@
 				$(".dataPreview").on("click",function(){
 					if(previewDataTime<50){
 						previewDataTime++
-						window.open("/front/wx_dataExport/toPreview/"+{{.T._id}});
+						var dataType = $(".choose").find("div.active").index()+1;
+						window.open("/front/wx_dataExport/toPreview/"+{{.T._id}}+"?dataType="+dataType);
 					}else{
 						EasyAlert.show("预览数据次数超出今日上限!","",3000);
 					}

+ 235 - 32
src/web/templates/weixin/dataExport/dataExport_previewData.html

@@ -2,58 +2,261 @@
 	<head>
 		<meta charset="utf-8">
 		<title>预览数据</title>
-		<meta name="viewport" content="initial-scale=1, maximum-scale=1">
-		<meta name="apple-mobile-web-app-capable" content="yes">
-		<meta name="apple-mobile-web-app-status-bar-style" content="black">
+		<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
 		<script src="{{Msg "seo" "cdn"}}/js/rem.js"></script>
-		<link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/wx_dataExport/css/base.css" />
-		<link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/wx_dataExport/iconfont/iconfont.css" />
+		<link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/wx_dataExport/iconfont/iconfont.css" />						<link rel="stylesheet" href="{{Msg "seo" "cdn"}}/dataExport/css/previewData.css?v={{Msg "seo" "version"}}">
 		<link rel="stylesheet" href="{{Msg "seo" "cdn"}}/wx_dataExport/css/preview_data.css">
+		<script src="https://cdn.bootcss.com/js-polyfills/0.1.42/polyfill.min.js"></script>
+		<script src="{{Msg "seo" "cdn"}}/dataExport/js/html2canvas.min.js"></script>
 		<style>
-			iframe{
-				border: 0px !important;
+			@font-face {
+				font-style: normal;
+			    font-weight: normal;
+				font-family: 'MyNewFont';
+				src: url('/fonts/ttf/{{.T.ttf}}.eot');  /* IE 9 - 11 */
+    			src: url('/fonts/ttf/{{.T.ttf}}.eot?#iefix') format('embedded-opentype'), /* IE Fix for IE 6-8*/
+				url("/fonts/ttf/{{.T.ttf}}.ttf") format("truetype");  /* chrome、firefox、opera、Safari, Android, iOS 4.2+ */
+			}
+			body .loading_ {
+			    height: 100%;
+			    width: 100%;
+			    position: fixed;
+			    background: #382f3d;
+			    z-index: 999999999990;
+				opacity: .7;
+				    margin-top: -55px;
+			}
+			body .loading_ > p {
+			    position: absolute;
+			    left: 0;
+			    right: 0;
+			    top: 0;
+			    bottom: 0;
+			    margin: auto;
+			    height: 60px;
+			    width: 60px;
+			    text-align: center;
+			    line-height: 60px;
+			    font-size: 0.36rem;
+			    color: rgba(44, 183, 202, 0.8);
+			}
+			body .loading_ p span {
+			    position: absolute;
+			    display: block;
+			    height: 40px;
+			    width: 40px;
+			    margin: 10px;
+			    border-radius: 50%;
+			    -webkit-box-shadow: 0 2px 3px rgba(44, 183, 202, 0.8);
+			    animation: loading_ ease 1s infinite;
+			    left: 0;
+			    top: 0;
+			}
+			@keyframes loading_ {
+			  0% {
+			    transform: rotate(0deg); }
+			  100% {
+			    transform: rotate(360deg); } 
+			}
+			.buttons-tab{
+				position: fixed;
+			    top: 0px;
+			    left: 0px;
+			    right: 0px;
+				z-index: 9999;    
+				height: 50px;
+    			background: #fff;
+    			font-size: 16px;
+			}
+			.d_bz{
+				margin-top:55px;
+				position:relative;
+				margin-bottom:10px;
+			}
+			.fimg{
+				margin-top:55px;
+				margin-bottom:10px;
+			}
+			ul,ol {
+			    list-style: none;
+				margin: 0px;
+    			padding: 0px;
+			}
+			.buttons-tab > ul {
+			    width: 100%;
+			    height: 1rem;
+			    line-height: 1rem;
+			    display: -webkit-box;
+			    display: -ms-flexbox;
+			    display: flex;
+			    -webkit-box-align: center;
+			    -ms-flex-align: center;
+			    align-items: center;
+			    -webkit-box-pack: justify;
+			    -ms-flex-pack: justify;
+			    justify-content: space-between;
+			    padding: 0 .6rem;
+			    background: #fff;
+			    border-bottom: 1px solid #e0e0e0;
+			    -webkit-box-sizing: border-box;
+			    box-sizing: border-box;
+			}
+			.buttons-tab > ul .active {
+			    color: #2cb7ca !important;
+			    border-bottom: 2px solid #2cb7ca  !important;
+			    -webkit-box-sizing: border-box !important;
+			    box-sizing: border-box !important;
+			}
+			.buttons-tab > ul .tab-link {
+			    display: block;
+			    -webkit-box-flex: 1;
+			    -ms-flex: 1;
+			    flex: 1;
+			    text-align: center;
+			    color: #1d1d1d;
+			    font-size: .34rem;
+			    -webkit-box-sizing: border-box;
+			    box-sizing: border-box;
+			    height: 99%;
+			}
+			.fimg {
+		    	opacity: 1 !important;
+				z-index: 9999;
+			}
+			.noData{
+				width: 200px;
+			    height: 50px;
+			    position: absolute;
+			    top: 40%;
+			    left: 50%;
+			    margin-left: -100px;
+			    font-size: 16px;
 			}
 		</style>
 	</head>
 	<body>
-		<div id="preview_data">
-			<!-- <header class="header">
-				<a href="#" class="return pull-left">
-					<i class="icon iconfont">&#xe640;</i>
-				</a>
-				<h1 class="title">预览数据</h1>
-			</header> -->
-			<main class="main">
-				<div class="buttons-tab">
-					<ul>
-						<li class="tab-link active">标准字段包</li>
-						<li class="tab-link ">高级字段包</li>
-					</ul>
-				</div>
-				<div class="tabs">
-					<div class="tab active">
-						<iframe id="one" width="100%" height="100%" src="/front/dataExport/previewData/{{.T.id}}?dataType=1"></iframe>
-					</div>
-					<div class="tab" style="display: none;">
-						<iframe id="two" width="100%" height="100%" src="/front/dataExport/previewData/{{.T.id}}?dataType=2"></iframe>
-					</div>
-				</div>
-			</main>
+		<div class="loading_" style="display:none;">
+			<p><span></span></p>
+		</div>
+		<div class="buttons-tab">
+			<ul>
+				<li class="tab-link active">标准字段包</li>
+				<li class="tab-link ">高级字段包</li>
+			</ul>
+		</div>
+		<div class="tabs"  style="min-width:2020px;">
+			<table class="d_bz" cellspacing="0" cellpadding="0" >
+				
+			</table>
+			<div class="sy">
+			</div>
 		</div>
+		<div class="noData">今日已超出预览次数</div>
 		<script src="{{Msg "seo" "cdn"}}/wx_dataExport/js/zepto.js"></script>
 		<script>
+			var bz = '<tr><td>序号</td><td>公告标题</td><td>公告内容</td><td>剑鱼标讯地址</td><td>省份</td><td>城市</td><td>发布时间</td><td>项目名称</td><td>采购单位</td><td>中标单位</td><td>中标价<br>(万元)</td><td>币种</td><td>公告类别</td></tr>';
+			var gj = '<tr><td>序号</td><td>公告标题</td><td>公告内容</td><td>公告地址</td><td>剑鱼标讯地址</td><td>省份</td><td>城市</td><td>发布时间</td><td>项目名称</td><td>项目编号</td><td>采购单位</td><td>采购单位<br>联系人</td><td>采购单位<br>联系电话</td><td>预算<br>(万元)</td><td>开标日期</td><td>中标单位</td><td>中标价<br>(万元)</td><td>招标机构</td><td>项目范围</td><td>币种</td><td>公告类别</td></tr>';
 			$(function() {
+				loading(true);
+				tab({{.T.dataType}});
 				$(".buttons-tab .tab-link").each(function() {
 					var index = $(this).index();
 					$(".buttons-tab .tab-link").eq(0).addClass("active");
 
 					$(this).click(function() {
+						loading(true);
+						tab(index);
 						$(this).addClass("active").siblings().removeClass("active");
-						$(".tabs>.tab").eq(index).show().siblings().hide();
 					})
-
 				})
 			})
+			//
+			function tab(t){
+				t= parseInt(t)+1;
+				$.post("/front/wx_dataExport/getPreview",{dataType:t,_id:{{.T.id}}},function(r){
+					if(r.data){
+						var res = r.res.data;
+						var aHtml = bz;
+						if(t==2){
+							$(".tabs").css("min-width","2820px");
+							aHtml = gj;
+							for(var i in res){
+								aHtml+='<tr><td>'+(Number(i)+Number(1))+'</td>'
+										+'<td>'+res[i]["title"]+'</td>'
+										+'<td>'+res[i]["detail"]+'</td>'
+										+'<td>'+res[i]["href"]+'</td>'
+										+'<td>'+res[i]["url"]+'</td>'
+										+'<td>'+res[i]["area"]+'</td>'
+										+'<td>'+res[i]["city"]+'</td>'
+										+'<td>'+res[i]["publishtime"]+'</td>'
+										+'<td>'+res[i]["projectname"]+'</td>'
+										+'<td>'+res[i]["projectcode"]+'</td>'
+										+'<td>'+res[i]["buyer"]+'</td>'
+										+'<td>'+res[i]["buyerperson"]+'</td>'
+										+'<td>'+res[i]["buyertel"]+'</td>'
+										+'<td>'+res[i]["budget"]+'</td>'
+										+'<td>'+res[i]["bidopentime"]+'</td>'
+										+'<td>'+res[i]["s_winner"]+'</td>'
+										+'<td>'+res[i]["bidamount"]+'</td>'
+										+'<td>'+res[i]["agency"]+'</td>'
+										+'<td>'+res[i]["projectscope"]+'</td>'
+										+'<td>'+res[i]["currency"]+'</td>'
+										+'<td>'+res[i]["subtype"]+'</td>'
+										+'</tr>'
+							}
+						}else{
+							$(".tabs").css("min-width","2020px");
+							for(var i in res){
+								aHtml+='<tr><td>'+(Number(i)+Number(1))+'</td>'
+										+'<td>'+res[i]["title"]+'</td>'
+										+'<td>'+res[i]["detail"]+'</td>'
+										+'<td>'+res[i]["url"]+'</td>'
+										+'<td>'+res[i]["area"]+'</td>'
+										+'<td>'+res[i]["city"]+'</td>'
+										+'<td>'+res[i]["publishtime"]+'</td>'
+										+'<td>'+res[i]["projectname"]+'</td>'
+										+'<td>'+res[i]["buyer"]+'</td>'
+										+'<td>'+res[i]["s_winner"]+'</td>'
+										+'<td>'+res[i]["bidamount"]+'</td>'
+										+'<td>'+res[i]["currency"]+'</td>'
+										+'<td>'+res[i]["subtype"]+'</td>'
+										+'</tr>'
+							}
+						}
+						$(".d_bz").html(aHtml);
+						$('td').each(function(){
+						    var tt = this.innerText;
+							if(tt=="undefined"||tt=="null"){
+								$(this).html("");
+							}
+						});
+						makeP();
+					}else{
+						$(".tabs").css({"min-width":"0px","display": "none"});
+						loading(false);
+					}
+				})
+			}
+			//loading...
+			function loading(flag){
+				if(flag){
+					$(".loading_").show();
+				}else{
+					$(".loading_").hide();
+				}
+			}
+			//picture
+			function makeP(){
+				var w=$("table").width();
+				var h=$("table").height();
+				$(".sy").width($("table").width()).height($("table").height());
+				//html2canvas(document.querySelector(".tabs")).then(function(canvas){
+				//		var url=canvas.toDataURL('image/png');
+				//		$("body").append("<img class=\"fimg\" src=\""+url+"\">");
+				//		$("body img").width(w);
+				//});
+				loading(false);
+			}
 		</script>
 	{{include "/common/baiducc.html"}}
 	</body>