browserHelper.js 4.12 KB
define(['mUtil'], function (mUtil) {
    var openLinkUrl = function(linkUrl, value, typeid, typename, modeid, authorizeStr, browserType, empowStr){
		var diyBrowser = ["161", "162", "256", "257"];
        if(diyBrowser.indexOf(typeid + "") != -1){
			if(typeid == "256" || typeid == "257"){
				modeid = getTreeBrowserModelId(value.substring(0, value.indexOf("_")), modeid);
			}
			if(value.indexOf("_") > -1) value = value.substring(value.indexOf("_") + 1);
            var params = {
                modelid: modeid,
                uitype: 1,
                billid: value,
                authorize: authorizeStr,
				browserType: browserType
            };
            Mobile_NS.getLayoutUrl(params);
        }else{
        	if ((typeid == 9 || typeid == 37) && window.__meta__.sessionKey){
        		//匿名访问
				var actionUrl = mUtil.getActionUrl("FFile", { action: "parseFiles", values: value });
				mUtil.getJSON(actionUrl,function (result) {
					var imagefileid = result.data[0].imagefileid;
					var name = result.data[0].name;
					//打开文档
					mUtil.previewFile(imagefileid, name, empowStr);
				});
			} else {
				linkUrl = linkUrl + value;
				if(authorizeStr){
					linkUrl = ~linkUrl.indexOf("?") ? linkUrl + authorizeStr : linkUrl + "?" + authorizeStr.substring(1);
				}
				Mobile_NS.openWebView(linkUrl);
			}
        }
    };

    var getTreeBrowserModelId = function (nodeid, modeidStr) {
		var modeidArray = modeidStr.split(",");
		for(var i = 0; i < modeidArray.length; i++){
			if(nodeid == modeidArray[i].substring(0, modeidArray[i].indexOf("_"))){
				return modeidArray[i].substring(modeidArray[i].indexOf("_") + 1);
			}
		}
	}

    return {
    	openBrowserLink: function(value, text, typeid){
            var typename, browserType, modeid, authorizeStr, empowStr;
    	    if(typeof(value) == 'object'){
    	        var $target = value;
                value = $target.attr("data-value");
                text = decodeURIComponent($target.attr("data-text"));
                typeid = $target.attr("data-typeid");
                typename = $target.attr("data-typename");
                browserType = $target.attr("data-typename");
                modeid = $target.attr("data-modeid");
                authorizeStr = $target.attr("data-authorize");
				empowStr = $target.attr("data-empowStr");
            }
            value = value + "";
			if(!value) return;
			
			var crmUrl = "/spa/crm/static4mobile/index.html#/customerCard/";
			var prjUrl = "/spa/prj/static4mobile/index.html#/ProjectDetails/0/";
			var wflowUrl = "/spa/workflow/static4mobileform/index.html#/req?requestid=";
			var docUrl = "/spa/document/static4mobile/index.html#/doc/";

			var isMulti = ~["18", "37", "135", "152", "162", "171", "257"].indexOf(typeid) && ~value.indexOf(","), linkUrl;
			switch (typeid) {
    			case "7"://客户
                case "18"://多客户
    			    linkUrl = crmUrl;
    			    break;
    			case "8"://项目
                case "135"://多项目
    			    linkUrl = prjUrl;
    			    break;
				case "9": //文档
                case "37"://多文档
					linkUrl = docUrl;
					break;
                case "16"://流程
				case "171"://归档流程
				case "152"://多流程
					linkUrl = wflowUrl;
					break;
                case "161":
                case "162":
                case "256":
                case "257":
                    linkUrl = "";
                    break;
				default:
					return;
			}
			
			if(isMulti){
				value = value.split(",").filter(function (item) {
					return item != "";
				});
				text = text.split(",");
				var menuArr = [];
				for(var i=0;i<value.length;i++){
					var menu = {};
					var menuVal = value[i];
					if(!menuVal) continue;
					menu.menuValue = menuVal;
					menu.text = "<div class='wev-ellipsis'>"+text[i]+"</div>";
					menu.callback = function(){
					    openLinkUrl(linkUrl, $(this).attr("data-value"), typeid, typename, modeid, authorizeStr, browserType, empowStr);
					};
					menuArr.push(menu);
				}
				Mobile_NS.footerMenu(menuArr);
			}else{
                openLinkUrl(linkUrl, value, typeid, typename, modeid, authorizeStr, browserType, empowStr);
			}
		}
    };
});