appHomepageView.jsp 9.25 KB
<!DOCTYPE html>
<%@page import="com.weaver.formmodel.mobile.security.SecurityUtil"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="com.weaver.formmodel.util.NumberHelper"%>
<%@ page import="com.weaver.formmodel.mobile.ui.manager.MobileAppHomepageManager"%>
<%@ page import="com.weaver.formmodel.mobile.ui.model.AppHomepage"%>
<%@ page import="com.weaver.formmodel.mobile.mec.MECManager"%>
<%@ page import="com.weaver.formmodel.util.StringHelper"%>
<%@ page import="com.weaver.formmodel.mobile.ui.manager.MobiledeviceManager"%>
<%@ page import="com.weaver.formmodel.mobile.manager.MobileUserInit"%>
<%@ page import="weaver.general.Util"%>
<%@ page import="net.sf.json.JSONObject"%>
<%@ page import="weaver.hrm.User"%>
<%@ page import="com.weaver.formmodel.mobile.utils.MobileCommonUtil"%>
<%@ page import="com.weaver.formmodel.mobile.types.ClientType"%>
<%@ page import="com.weaver.formmodel.mobile.plugin.Resource"%>
<%@ page import="java.util.HashMap"%>
<%@ page import="java.util.Map"%>
<%@ page import="java.util.List"%>
<%@ page import="com.weaver.formmodel.mobile.skin.SkinManager"%>
<%@ page import="com.api.mobilemode.constant.LayoutRightType" %>
<%@ page import="com.weaver.formmodel.data.manager.BusinessDataManager" %>
<%@ page import="com.weaver.formmodel.mobile.utils.AttachUtil" %>
<%
request.setCharacterEncoding("UTF-8");
User user = MobileUserInit.getUser(request, response);
if(user == null){
	int noLogin = NumberHelper.string2Int(request.getParameter("noLogin"), -1);
	if(noLogin == 1){
		out.println("匿名访问地址配置错误,请联系管理员进行配置以访问完整功能。");
		return;
	}else{
		out.println("服务器端重置了登录信息,请重新登录");
		return;
	}
}
int appid = NumberHelper.string2Int(request.getParameter("appid"),0);
int appHomepageId = NumberHelper.string2Int(request.getParameter("appHomepageId"), -1);
//String clienttype = StringHelper.null2String(request.getParameter("clienttype"));	//当前访问客户端类型 可能的值:Webclient|iphone|ipad|Android
ClientType clienttype = MobileCommonUtil.getClientType(request);
boolean isOpenedOnTopfloor = StringHelper.null2String(request.getParameter("isOpenedOnTopfloor")).trim().equals("1");	//标识该自定义页面是否为顶层打开的
int isShowInTabV = NumberHelper.string2Int(request.getParameter("isShowInTab"), 0); //是否为Tab页布局

int mobiledeviceid = MobiledeviceManager.getInstance().getDeviceByClienttype(clienttype);
MobileAppHomepageManager mobileAppHomepageManager=MobileAppHomepageManager.getInstance();
AppHomepage appHomepage;
if(appHomepageId == -1){
	appHomepage = mobileAppHomepageManager.getAppHomepageByAppid(appid, mobiledeviceid);
}else{
	appHomepage = mobileAppHomepageManager.getAppHomepage(appHomepageId, mobiledeviceid);
}

if(appHomepage.getId() == null){
	request.getRequestDispatcher("/mobilemode/message.jsp?errorCode=1387").forward(request, response);
	return;
}

appHomepageId = appHomepage.getId();
appid = appHomepage.getAppid();
request.setAttribute("layoutid", appHomepage.getLayoutid());

int modelid = -1;
if(appHomepage.getModelid() != null){
	modelid = appHomepage.getModelid().intValue();
}
String billid = StringHelper.null2String(request.getParameter("billid"));

//布局页面权限判断
int uitype = NumberHelper.string2Int(appHomepage.getUitype());
if(uitype != -1 && modelid != -1){
	int sourceid = Util.getIntValue(appHomepage.getSourceid());

	if((uitype == 1 || uitype == 2) && !BusinessDataManager.getInstance().checkBusinessDataExists(modelid, billid)){
		request.getRequestDispatcher("/mobilemode/message.jsp?errorCode=1390").forward(request, response);
		return;
	}
	int right = mobileAppHomepageManager.getAppHomepageRightInfo(uitype, modelid, billid, sourceid, user);

	if(right == 0){
		request.getRequestDispatcher("/mobilemode/message.jsp?errorCode=1389").forward(request, response);
		return;
	}
	//页面拓展
	request.setAttribute("uitype", uitype);
	request.setAttribute("isEdit", right >= LayoutRightType.EDIT.getLevel() ? 1 : 0);
	request.setAttribute("isDel", right == LayoutRightType.DEL.getLevel() ? 1 : 0);
	request.setAttribute("appid", appid);
	request.setAttribute("modelid", modelid);
	request.setAttribute("appHomepageId", appHomepageId);
}

String pageAttr=(StringHelper.null2String(appHomepage.getPageAttr()).equals(""))?"{}":appHomepage.getPageAttr();
JSONObject pageAttrJson = JSONObject.fromObject(Util.null2String(pageAttr));
boolean disableDownRefresh = Util.getIntValue(Util.null2String(pageAttrJson.get("isDownRefresh"))) != 1;
boolean isDisabledSkin = Util.null2String(pageAttrJson.get("isDisabledSkin")).equals("1");
String onloadScript = (String)pageAttrJson.get("onloadScript");
onloadScript = SecurityUtil.encryptKeyCode(onloadScript);

String skinCssPath = "";
if(!isDisabledSkin){
	SkinManager skinManager = new SkinManager();
	skinCssPath = skinManager.getSkinCssPathWithApp(appid);
}
		
String pageContent = StringHelper.null2String(appHomepage.getPageContent());
Map<String, Object> paramMap = new HashMap<String, Object>();

//临时赋权
String empowStr = "";
if (modelid > 0 ) {
	empowStr = AttachUtil.getEmpowStr(modelid, billid);
}

paramMap.put("appid", appid);
paramMap.put("pageContent", pageContent);
paramMap.put("request", request);
paramMap.put("response", response);
paramMap.put("empowStr", empowStr);
Map<String, Object> resultMap = MECManager.parseUIContent(paramMap);

pageContent = (String)resultMap.get("pageContent");
List<Resource> refResources = (List<Resource>)resultMap.get("refResources");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<title><%=Util.formatMultiLang(appHomepage.getPagename()) %></title>

<script src="/cloudstore/resource/mobile/loadjs/loadjs.min.js?v=2018113001" type="text/javascript"></script>
<script src="/spa/coms/ssoSDK/ssoInit.js?v=2018113001" type="text/javascript"></script>
<script src="/mobilemode/js/sso/ssoInit.js?v=2019061801" type="text/javascript"></script>
<script type="text/javascript" src="/mobilemode/js/zepto/zepto.min_wev8.js?v=2019101101"></script>
<script type="text/javascript" src="/mobilemode/js/fastclick/fastclick.min_wev8.js?v=2019101101"></script>
<link type="text/css" rel="stylesheet" href="/mobilemode/css/mobile_homepage_wev8.css?v=2019101101" />
<script type="text/javascript" src="/mobilemode/js/mobile_homepage_wev8.js?v=2019123001"></script>
<%if(!disableDownRefresh){%>
<link type="text/css" rel="stylesheet" href="/mobilemode/css/iScroll_wev8.css?v=2019101101" />
<script type="text/javascript" src="/mobilemode/js/iscroll/iscroll5_wev8.js?v=2019101101"></script>
<script type="text/javascript" src="/mobilemode/js/iscroll/iScrollHandler_wev8.js?v=2019101101"></script>
<%}%>
<%for(Resource r : refResources){
	if(r.isCss()){%>
		<link type="text/css" rel="stylesheet" href="<%=r.getPath()%>?v=2019101101" />
	<%}else if(r.isJS()){%>
		<script type="text/javascript" src="<%=r.getPath()%>?v=2019101101"></script>
	<%}
}%>
<%if(!skinCssPath.trim().equals("")){%>
<link type="text/css" rel="stylesheet" href="<%=skinCssPath%>?v=2019101101" />
<%}%>
<script type="text/javascript" src="/mobilemode/js/lazyload/jquery.lazyload.min_wev8.js?v=2019101101"></script>
<script type="text/javascript" src="/mobilemode/js/hammer/hammer.min_wev8.js?v=2019101101"></script>

<script type="text/javascript">
var E3005CF26D9F9AC78773E16572827297 = "<%=(user == null) ? "" : user.getUID()%>";
var pageIdentifier = {type : "1", id : "<%=appHomepageId%>"};
var isBeScrolling = false;
var disableDownRefresh = <%=disableDownRefresh%>;
var isOpenedOnTopfloor = <%=isOpenedOnTopfloor%>;
var appid = <%=appid%>;
var isShowInTabV = <%=isShowInTabV%>;

$(document).ready(function(){
	FastClick.attach(document.body);
	
	Mobile_NS.groupViewImg();
	
	Mobile_NS.listenPageChange(Mobile_NS.groupViewImg);
	
	Mobile_NS.pressImgForSave();
	
	Mobile_NS.listenPageChange(Mobile_NS.pressImgForSave);
	
	var bCss = Mobile_NS.isRunInMobile() ? "mobile" : "pc";
	$(document.body).addClass(bCss);
	
	//Mobile_NS.imgLazyload();
	anonymousFiledownProcess("body");
	$("img.lazy").not(".horiListContainer img.lazy").lazyload({
		container : "#scroll_wrapper",
		failurelimit : 10
	});
	
	try {
	   <%=onloadScript%>
	} catch (e) {
	    console.error(e);
	}
	//解决标签页控件在ios下不能滑动的问题
	var wrapperHeight = $("#scroll_wrapper").height();
	var scrollHeight = $("#scroll_scroller").height();
	if($(".tabBarContainer").length > 0 && scrollHeight < wrapperHeight && _top && typeof(_top.isIOS) == "function" && _top.isIOS()){
		$("#scroll_scroller").css("height", wrapperHeight+1);
	}
});
</script>
</head>
<body>
<input type="hidden" id="appid" value="<%=appid %>"/>
<div id="page_view">
	<div id="center_view">
		<div id="scroll_header"></div>
		<div id="scroll_wrapper">
			<div id="scroll_scroller">
				<div id="pullDown">
					<span class="pullDownIcon"></span><span class="pullDownLabel"><%=MobileCommonUtil.getHtmlLabelName(389564,user.getLanguage(),"下拉刷新")%></span>
				</div>
				<%=pageContent %>
			</div>
		</div>
		<div id="scroll_footer"></div>
	</div>
	<div id="right_view">
		<div></div>
	</div>
</div>
</body>
</html>