; (function () { window.console = window.console || { log: function () { } }; //需要引入配置字段文件,方便针对不同的字段 if (!window.registerConfig || !registerConfig.eloquaParams) { alert("没有引入配置文件"); return false; } var $minisiteRegisterForm = $(".minisiteRegisterForm"); var lang = $.trim($("#gLanguageCurrent").val()); lang = lang == "zh" ? "cn" : lang; if (~navigator.userAgent.indexOf("MSIE 8")) { jQuery.support.cors = true; } /** * 弹框 * @param $dialog */ function dialog($dialog) { if ($dialog.length == 0) { return } $(".minisiteDialog-mask").hide() $(".J-minisiteExportCloseBtn").click(); $dialog.show(); $dialog.parents(".minisiteDialog-mask").show(); dialogCenter($dialog); $dialog.on("click", ".J-minisiteDialog-close", function () { dialogClose($dialog); }) } /** * 关闭弹窗 */ function dialogClose($dialog) { if ($dialog.length == 0) { return } $(".J-minisiteExportCloseBtn").click(); $dialog.parents(".minisiteDialog-mask").hide(); $dialog.off("click", ".J-minisiteDialog-close") } /** * 窗口居中 */ function dialogCenter($dialog) { var height = $dialog.height(); var winH = $(window).height(); var setH = (winH - height < 0) ? 0 : (winH - height) / 2; $dialog.css({ top: setH }); } /** * 弹窗resize */ function resizeDialog() { dialogCenter($(".minisiteCreateIdForm")); dialogCenter($(".minisiteLoginDialog")); } /** * 弹窗功能 */ function initDialog() { if (window.registerConfig.resizeDialog) { registerConfig.resizeDialog(resizeDialog); } } /** * 模板 * */ String.prototype.tpl = function () { var arg = arguments; var that = this; for (var i = 0; i < arg.length; i++) { that = that.replace(new RegExp('\\{' + i + '\\}', "g"), arg[i]); } return that; }; /** * 职位html模板 * */ function getOpitonTempl(ret) { var retStr = ""; for (var i = 0; i < ret.length; i++) { var obj = ret[i]; if (!obj.value) obj.value = obj.name; retStr += '
  • {1}
  • '.tpl(obj.value, obj.name, obj.value); } return retStr; } /** * 职位信息 * */ function initJop() { if ($(".J-minisite-jop.J-select").length == 0) return; var urlPosition = location.protocol + "//" + location.host + ("/en/Service/CollectUser?languages=" + lang + "&type={1D6B1276-86A7-4AB5-B1B5-3169CD8D3423}"); $.ajax({ type: "POST", url: urlPosition, success: function (obj) { try { $(".J-minisite-jop.J-select").find(".J-select-option").html(getOpitonTempl(obj)); $(".J-minisite-jop.J-select").data("data", obj).trigger("data-ready").data("data-ready", true); } catch (e) { console.error(e); } }, error: function (e) { console.error(e); } }) } /** * 行业html模板 * */ function getIndustryTempl(data) { var industry = []; for (var j = 0; j < data.length; j++) { var ret = data[j].data; var retStr = ""; for (var i = 0; i < ret.length; i++) { var obj = ret[i]; retStr += ' {3}'.tpl(obj.name, obj.value, obj.value, obj.name, obj.ucode) } industry.push('
  • {1}
    {2}
  • '.tpl(data[j].value, data[j].name, retStr)) } return industry.join(""); } /** * multi-list模板 * */ function getIndustryTempl2(data) { var industry = []; var subindustry = []; for (var j = 0; j < data.length; j++) { var ret = data[j].data; var retStr = ""; for (var i = 0; i < ret.length; i++) { var obj = ret[i]; retStr += ' {3}'.tpl(obj.name, obj.value, obj.value, obj.name, obj.ucode); } subindustry.push('
    {0}
    '.tpl(retStr)); industry.push('
    {1}
    '.tpl(data[j].value, data[j].name)); } return '
  • {0}
  • {1}
  • '.tpl(industry.join(""), subindustry.join("")); } /** * 获取行业 * */ function getIndustryInfo() { var $select = $("input[name='Industry']").parents(".J-select"); if ($select.length == 0) return; var $Industry = $select.find(".J-select-option"); $Industry.html(""); var url = location.protocol + "//" + location.host + "/en/Service/CollectUser?languages=" + lang + "&type={60B71899-9BD1-42C1-A414-110EA69C4CCD}"; $.ajax({ type: "POST", url: url, success: function (data) { if (data && data.length > 0) { //列表树形结构 if ($Industry.parents(".J-select-multi-list").length) { $Industry.html(getIndustryTempl2(data)); } else { $Industry.html(getIndustryTempl(data)); } $select.data("data", data).trigger("data-ready").data("data-ready", true); } }, error: function (t) { } }) } /*** * * @param 将serializeArr转换为map * @returns {{}} */ function parseFormParam(serializeArr) { var obj = {}; for (i = 0; i < serializeArr.length; i++) { var name = serializeArr[i].name; var value = serializeArr[i].value; if (obj[name]) { if ($.type(obj[name]) == "array") { obj[name].push(value) } else { obj[name] = [obj[name]]; obj[name].push(value); } } else { obj[name] = value; } } return obj; } /*** * * 从配置中取数据 */ function parseParamsFromConfig(dir, src) { parseKeyMap(window.registerConfig.eloquaParams, function (key, mapKey, handle) { if (typeof handle == "function") { dir[mapKey] = handle(src[key]); } else { dir[mapKey] = src[key]; } }); } /*** * * 解析特定结构{key:keyMap} 或者是{key:{mapName:keyMap,handle:function}}到callback里面 */ function parseKeyMap(data, callBack) { for (var key in data) { if (data[key]) { //带处理函数的配置数据 if (typeof data[key] == "object") { if (typeof data[key].handle == "function" && data[key].mapName != null) { callBack(key, data[key].mapName, data[key].handle); } else { alert(key + "in config data can not parse!"); } } else { callBack(key, data[key]); } } else { alert(key + "in not find in config!"); } } } /** * 取URL上的参数 * */ function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var str = window.location.search.substr(1).match(reg); if (str != null) return unescape(str[2]); return null; } /*** * * 通过url设置表单数据 */ function parseParamsFromUrl(eloquaParams, obj) { if (window.registerConfig.urlParams) { parseKeyMap(window.registerConfig.urlParams, function (key, mapKey, handle) { var value; if (key) { value = GetQueryString(key) } if (typeof handle == "function") { value = handle(value); } //如果url有值优先取url上的值;如果没有值就取form里面的值;这里要求url匹配的值和form值保持一致 if (value) { eloquaParams[mapKey] = value; } else { eloquaParams[mapKey] = obj[mapKey]; } }); } } /*** * * eloqua将json转化为input */ function submitByForm(eloquaParams, action) { if (!$("#submitMiddlewareForm").length) { $("body").append("") } $("#submitMiddlewareForm").html(""); for (var key in eloquaParams) { insertInput(key, eloquaParams[key]) } if (!eloquaParams.GOTOURL && registerConfig.postEloquaSuccessUrl) { var gotoUrl = registerConfig.postEloquaSuccessUrl; setCookie("GOTOURLTIME", new Date().getTime()); if ($("#submitMiddlewareForm").find("input[name='GOTOURL']").length) { $("#submitMiddlewareForm").find("input[name='GOTOURL']").val(gotoUrl) } else { insertInput("GOTOURL", gotoUrl) } } $("#submitMiddlewareForm")[0].submit() } function insertInput(key, value, level) { level = level || { count: 0 } var i; if ($.type(value) == "array" && level.count < 3) { for (var i = 0; i < value.length; i++) { level.count++; insertInput(key, value[i], level); level.count--; } } else if ($.type(value) == "object" && level.count < 3) { for (var i in value) { level.count++; insertInput(key + "." + i, value[i], level) level.count--; } } else { $("#submitMiddlewareForm").append("") } } /*** * * eloqua提交表单 */ function postEloqua($btn, $form, noDilaog) { if (typeof registerConfig.beforePostEloqua == "function") { registerConfig.beforePostEloqua($btn, $form, noDilaog) } var action = $.trim($form.attr("action")); var obj = parseFormParam($form.serializeArray()); var eloquaParams = {}; parseParamsFromConfig(eloquaParams, obj); parseParamsFromUrl(eloquaParams, obj); //支持可以修改或新增参数 if (typeof registerConfig.afterParseParams == "function") { registerConfig.afterParseParams(eloquaParams); } //测试地址 // var action = "//gate-beta.dmartech.cn/questionnaire/api/web-api/questionnaire/v1/submit/138" //form // var action = "//gate-beta.dmartech.cn/questionnaire/api/web-api/questionnaire/v1/submitByForm/138" //ajax //上线地址 if (registerConfig.postEloquaByFormMethod) { action = action || "//gate.dmartech.cn/questionnaire/api/web-api/questionnaire/v1/submit/19"; //为这utag提交数据,延迟1秒 setTimeout(function () { submitByForm(eloquaParams, action); $btn.html("" + ($btn.data("org-text") || "") + ""); }, 1000); } else { action = action || "//gate.dmartech.cn/questionnaire/api/web-api/questionnaire/v1/submitByForm/19"; jQuery.support.cors = true; $.ajax({ url: action, data: $.param(eloquaParams, true), type: "post", cache: false, success: function (ret) { $btn.html("" + ($btn.data("org-text") || "") + "") //成功 if (typeof ret == "object" && ret.code == 200) { if (typeof registerConfig.postEloquaSuccess == "function" && registerConfig.postEloquaSuccess(ret, eloquaParams, dialog) === false) { return; } if (!noDilaog) { dialog($(".eloqueRegisterOkDialog")); } //3s跳 if (eloquaParams.GOTOURL) { setTimeout(function () { window.location.href = eloquaParams.GOTOURL; }, 1000) } //失败 } else { $btn.html("" + ($btn.data("org-text") || "") + "") if (typeof registerConfig.postEloquaFail == "function" && registerConfig.postEloquaFail(ret, eloquaParams, dialog) === false) { return; } dialog($(".eloqueRegisterFailDialog")); } }, error: function (e) { $btn.html("" + ($btn.data("org-text") || "") + "") if (typeof registerConfig.postEloquaFail == "function" && registerConfig.postEloquaFail(e, eloquaParams, dialog) === false) { return; } dialog($(".eloqueRegisterFailDialog")); } }) } } /** * Eloqua注册校验表单 * */ function miniEloquaRegister() { var $form = $minisiteRegisterForm; $form.validForm({ successList: function ($target, $form) { if (typeof registerConfig.validSuccess == "function") registerConfig.validSuccess($target, $form); //console.log("successList : " + $target.attr("name")); }, success: function ($btn, $form) { //提交 function submitByBtn() { if ($btn.html().indexOf("...") != -1) { return; } if (!$btn.data("org-text")) { $btn.data("org-text", $btn.text()); } $btn.html("" + $btn.data("org-text") + "...") postEloqua($btn, $form); } if ($btn) { if ($form.hasClass("J-checkCapta")) { $("#checkCaptaDialogContent").parents(".ebg-module-dialog-mask").show() baseUtils.checkCapta($("#checkCaptaDialogContent"), function (token) { if (typeof registerConfig.capthcaPass == "function") registerConfig.capthcaPass(token); submitByBtn(); }) } else { submitByBtn(); } } }, blur: function ($input) { //这个不需要默认的校验 if ($input.attr("name") == "validateNumber") { return false; } }, errorAfter: function () { $(".media-content-left").trigger("equireHeight"); var $err = $form.find(".validError"); var wt = $(window).scrollTop(); if ($err.offset()) { if ($err.offset().top < wt) { if ($(".zl-pc-header").css("position") == "fixed") { $("body,html").stop().animate({ "scrollTop": $err.offset().top - $(".zl-pc-header").height() }); } else { $("body,html").stop().animate({ "scrollTop": $err.offset().top }); } } } } }) $form.trigger("init-validform"); return { $eloquaForm: $form, checkFunc: $form.data("valid-form") }; } //checkbox和输入同步 function initcheckboxInput() { $minisiteRegisterForm.on("change", ".J-checkBox-input .checkboxInput", function () { $(this).parents(".J-checkBox-input").find(".checkbox").val($(this).val()) }) } // 点击查看大图 ; (function () { if ($(".media-content-left").length == 0) { return; } var winH = $(window).height(); var winW = $(window).width(); if ($('.img-item').length) { var display = $('.icon-close').css('display'); $('.img-item').each(function () { $(this).on('click', function () { console.log($(this).find('img').data('viewimg')); var oImg = $(this).find('img').data('viewimg'); $('.view-box').fadeIn(400); $('.view-box img').attr('src', oImg); var imgH = $('.view-box img').height(); if (imgH > winH) { $('.view-box img').css('bottom', 'auto') $('body').css({ 'overflow': 'hidden' }) $('.view-box').css({ 'overflow-y': 'scroll' }) } }) }) if (display != 'none') { $('.icon-close').on('click', function () { $(this).parent('.view-box').fadeOut(400); var _this = $(this); setTimeout(function () { _this.parent('.view-box').find('img').attr('src', '') $('body').css({ 'overflow': 'auto' }) }, 400) $('.view-box img').css('bottom', '0') $('.view-box').css({ 'overflow-y': 'auto' }) }) } } if (winW <= 1200) { $(".media-content-left").on("limitHeight", function () { if ($(this).data("limitHeight")) { $(this).data("limitHeight", false); $(".media-content-left").css("max-height", "100%"); } else { $(this).data("limitHeight", true); var maxHeight = $(".media-content-left").data("wap-maxheight") * 1 || 320; var nowHeight = $(".media-content-left section").height() if (nowHeight > maxHeight) { $(".media-content-left").css("max-height", maxHeight + "px"); $(".media-content-left .view-all").show(); } } }) $(".view-all").on("click", function () { $(".media-content-left").trigger("limitHeight"); $(this).hide(); }); $(".media-content-left").trigger("limitHeight"); } else { // $(".media-content-left").on("equireHeight", function() { // if (winW > 1200) { // $(".media-content-left").css("height","auto") // $(".media-content-right").css("height","auto") // var lHeight = $(".media-content-left").height() // var rHeight = $(".media-content-right").height() // var setHeight = Math.max(lHeight, rHeight); // $(".media-content-left").height(setHeight) // $(".media-content-right").height(setHeight) // } // }) $(".media-content-left").trigger("equireHeight"); } })() /*获取行业*/ getIndustryInfo(); /*职位信息*/ initJop(); /*checkboxValue*/ initcheckboxInput(); /** * Eloqua注册校验表单 * */ miniEloquaRegister() })();