浏览代码

app预览

wangshan 5 年之前
父节点
当前提交
8406edf1fb

+ 47 - 12
src/jfw/modules/app/src/app/front/ws_dataExport.go

@@ -27,13 +27,57 @@ type WsDataExport struct {
 	sendMailVerify    xweb.Mapper `xweb:"/jyapp/front/dataExport/sendMailVerify"`    //发送邮箱验证码
 	checkMailVerify   xweb.Mapper `xweb:"/jyapp/front/dataExport/checkMailVerify"`   //验证邮箱验证码
 	checkPhoneVerify  xweb.Mapper `xweb:"/jyapp/front/dataExport/checkPhoneVerify"`  //验证手机号
-	previewData       xweb.Mapper `xweb:"/jyapp/front/dataExport/previewData/(.*)"`  //app数据导出-数据预览
+	previewData       xweb.Mapper `xweb:"/jyapp/front/dataExport/previewData/(.*)"`  //app数据导出-数据预览页面
+	getPreview        xweb.Mapper `xweb:"/jyapp/front/dataExport/getPreview"`        //app数据导出-预览数据
 }
 
 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))
+	log.Println("times:", times)
+	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) SendMailVerify() {
 	email := w.GetString("email")
@@ -139,18 +183,9 @@ func (w *WsDataExport) PreviewData(_id string) error {
 	if userId == "" {
 		return errors.New("未登录")
 	}
-	//数据预览每天限制50次
-	incurKey := fmt.Sprintf("PreviewData_%s_%d", w.GetSession("userId"), time.Now().Day())
-	times := util.IntAll(redis.Get("other", incurKey))
-	if times >= 50 {
-		return errors.New("超出预览次数")
-	}
-	if times == 0 {
-		redis.Put("other", incurKey, 1, 24*60*60)
-	} else {
-		redis.Incr("other", incurKey)
-	}
 	w.T["id"] = _id
+	w.T["dataType"] = w.GetString("dataType")
+	w.T["ttf"] = public.GetFontVersion() + "_" + public.PC
 	w.Render("/dataExport/dataExport_previewData.html", &w.T)
 	return nil
 }

二进制
src/jfw/modules/app/src/web/staticres/jyapp/fonts/ttf/1.0_pc.eot


二进制
src/jfw/modules/app/src/web/staticres/jyapp/fonts/ttf/1.0_pc.ttf


二进制
src/jfw/modules/app/src/web/staticres/jyapp/fonts/ttf/mapping/1.0_pc.mapping


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

@@ -554,7 +554,7 @@
 				$(".dataPreview").on("tap",function(){
 					if(previewDataTime<50){
 						previewDataTime++
-						window.location.href="/jyapp/front/dataExport/previewData/"+{{.T._id}};
+						window.location.href="/jyapp/front/dataExport/previewData/"+{{.T._id}}+"?dataType="+dataType;
 					}else{
 						EasyAlert.show("预览数据次数超出今日上限!","",3000);
 					}

+ 234 - 28
src/jfw/modules/app/src/web/templates/dataExport/dataExport_previewData.html

@@ -1,27 +1,147 @@
 <html>
 	<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">
+		<title>预览数据</title>		
+		<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"}}/jyapp/js/rem.js"></script>
 		<link href="/jyapp/css/layout.css?v={{Msg "seo" "version"}}" rel="stylesheet">
 		<link href="/jyapp/css/font.css?v={{Msg "seo" "version"}}" rel="stylesheet">
-		<link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/jyapp/dataExport/css/base.css" />
 		<link rel="stylesheet" type="text/css" href="{{Msg "seo" "cdn"}}/jyapp/dataExport/iconfont/iconfont.css" />
 		<link rel="stylesheet" href="{{Msg "seo" "cdn"}}/jyapp/dataExport/css/preview_data.css">
 		<link rel="stylesheet" href="{{Msg "seo" "cdn"}}/jyapp/dataExport/css/previewData.css?v={{Msg "seo" "version"}}">
 		<script src="https://cdn.bootcss.com/js-polyfills/0.1.42/polyfill.min.js"></script>
-		<script src="{{Msg "seo" "cdn"}}/jyapp/dataExport/js/html2canvas.min.js"></script>
-        <script src="{{Msg "seo" "cdn"}}/jyapp/js/jquery-3.2.1.min.js"></script>
 		<style>
-			iframe{
-				border: 0px !important;
+			@font-face {
+				font-style: normal;
+			    font-weight: normal;
+				font-family: 'MyNewFont';
+				src: url('/jyapp/fonts/ttf/{{.T.ttf}}.eot');  /* IE 9 - 11 */
+    			src: url('/jyapp/fonts/ttf/{{.T.ttf}}.eot?#iefix') format('embedded-opentype'), /* IE Fix for IE 6-8*/
+				url("/jyapp/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: 51px;
+    			background: #fff;
+    			font-size: 16px;
+				top: 65px;
+			}
+			.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;
+				text-align: center;
 			}
 			.app-layout-header{
 				position:fixed;
 			}
+			.tabs{
+				margin-top: 117px;
+			}
 		</style>
 	</head>
 	<body>
@@ -29,42 +149,128 @@
 			<span class="app-back jyapp-icon jyapp-icon-zuojiantou"></span>
 			预览数据
 		</div>
-		<div id="preview_data" style="    margin-top: 64px;">
-			<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/app_dataExport/previewData/{{.T.id}}?dataType=1"></iframe>
-					</div>
-					<div class="tab" style="display: none;">
-						<iframe id="two" width="100%" height="100%" src="/front/app_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" style="display:none;">今日已超出预览次数</div>
 		<script src="{{Msg "seo" "cdn"}}/jyapp/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(parseInt(index)+1);
 						$(this).addClass("active").siblings().removeClass("active");
-						$(".tabs>.tab").eq(index).show().siblings().hide();
 					})
-
 				})
 				//
 				$(".app-layout-header .app-back").click(function(){
 					window.history.back();
 				})
 			})
+			//
+			function tab(t){
+				$.post("/jyapp/front/dataExport/getPreview",{dataType:t,_id:{{.T.id}}},function(r){
+					console.log(r.res)
+					if(r.res.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"});
+						$(".noData").show();
+						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());
+				loading(false);
+			}
 		</script>
 <!--百度统计end-->
 {{include "/common/baiducc.html"}}

+ 7 - 7
src/web/templates/weixin/dataExport/dataExport_previewData.html

@@ -4,10 +4,9 @@
 		<title>预览数据</title>
 		<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/iconfont/iconfont.css" />						<link rel="stylesheet" href="{{Msg "seo" "cdn"}}/dataExport/css/previewData.css?v={{Msg "seo" "version"}}">
+		<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>
 			@font-face {
 				font-style: normal;
@@ -64,7 +63,7 @@
 			    left: 0px;
 			    right: 0px;
 				z-index: 9999;    
-				height: 50px;
+				height: 51px;
     			background: #fff;
     			font-size: 16px;
 			}
@@ -131,6 +130,7 @@
 			    left: 50%;
 			    margin-left: -100px;
 			    font-size: 16px;
+				text-align: center;
 			}
 		</style>
 	</head>
@@ -151,7 +151,7 @@
 			<div class="sy">
 			</div>
 		</div>
-		<div class="noData">今日已超出预览次数</div>
+		<div class="noData" style="display:none;">今日已超出预览次数</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>';
@@ -165,16 +165,15 @@
 
 					$(this).click(function() {
 						loading(true);
-						tab(index);
+						tab(parseInt(index)+1);
 						$(this).addClass("active").siblings().removeClass("active");
 					})
 				})
 			})
 			//
 			function tab(t){
-				t= parseInt(t)+1;
 				$.post("/front/wx_dataExport/getPreview",{dataType:t,_id:{{.T.id}}},function(r){
-					if(r.data){
+					if(r.res.data){
 						var res = r.res.data;
 						var aHtml = bz;
 						if(t==2){
@@ -233,6 +232,7 @@
 						makeP();
 					}else{
 						$(".tabs").css({"min-width":"0px","display": "none"});
+						$(".noData").show();
 						loading(false);
 					}
 				})