阅读:3969
回复:8
|
[已解决]添加自定义按钮后,手机端页面报错打不开
@岩竹玉雨
@管理员 问题:页面添加了自定义打印按钮,代码如下 //添加按钮 $.MvcSheet.AddAction({ Action: "getliangjie", // 执行后台方法名称 Icon: "fa-eye", // 按钮图标 Text: "调阅影像", // 按钮名称 Datas: ["{SequenceNo}", "{evalua}", "{Employee_Num}"], // 参数,多个参数 "{Param1}","Param2"... OnActionDone: function (e) { if (e) { window.open(e.success, false); } }, PostSheetInfo: true // 是否提交表单数据,如果 false,那么不返回表单的数据 });在电脑上,一切正常, 在手机上,也就是IsMobile=True的时候,页面就报错了。 图片:QQ截图20170328104011.png ![]() |
1楼#
发布于:2017-03-28 14:02
帖内置顶 – – 2017-04-06 17:23
从你的代码截图来看,你用的应该是9.2.6版本。
从错误截图来看是理应是自定义按钮错误是没错。但是我把你的js代码放在我的页面上,屏蔽部分没有的方法后是没有问题的。 所以: 先检查pc页面,看控制台是否有报错。保证pc页面js无报错才能转移动页面。 |
|
|
2楼#
发布于:2017-03-28 10:57
自定义页面写的js,大部分在手机端都会出错,因为所调用的组件实现方式都变了。
看错误提示是手机端都没有sheettoolbar这样的方法 |
|
3楼#
发布于:2017-03-28 10:57
之前处理过,不要把添加按钮事件写在jQuery 初始化里面。
|
|
|
4楼#
发布于:2017-03-28 11:01
表单界面代码
<script type="text/javascript"> $.MvcSheet.Loaded = function (sheetInfo) { // 执行后台事件,固定申请只能选本公司 $.MvcSheet.Action( { Action: "GetUserUnitCode", // 后台方法名称 Datas: [], // 输入参数,格式 ["{数据项名称}","String值","控件ID"],当包含数据项名称时 LoadControlValue必须为true LoadControlValue: true, // 是否获取表单数据 PostSheetInfo: false, // 是否获取已经改变的表单数据 Async: false, OnActionDone: function (e) { // 执行完成后回调事件 var dataitem = $.MvcSheetUI.GetSheetDataItem("Applicant", 0); $("div[data-datafield=Applicant]").SheetUser(dataitem).RootUnit = e.OuCode; } } ) $.MvcSheetUI.SetControlValue("evalua", "1"); //修改[提交]按钮为[批准] ModifyActionButton(); ApplicantChange(); } //修改[提交]按钮为[批准] function ModifyActionButton() { var mode = $.MvcSheetUI.QueryString("Mode").toLowerCase(); var workitemtype = $.MvcSheetUI.SheetInfo.WorkItemType; if (workitemtype == 2) { //更改按钮文字 $("div #main-navbar-collapse ul li[data-action=Submit] a span").text("批准") //$("div #main-navbar-collapse ul li[data-action=Save] a span").text("暂存") } } //添加按钮 $.MvcSheet.AddAction({ Action: "getliangjie", // 执行后台方法名称 Icon: "fa-eye", // 按钮图标 Text: "调阅影像", // 按钮名称 Datas: ["{SequenceNo}", "{evalua}", "{Employee_Num}"], // 参数,多个参数 "{Param1}","Param2"... OnActionDone: function (e) { if (e) { window.open(e.success, false); } }, PostSheetInfo: true // 是否提交表单数据,如果 false,那么不返回表单的数据 }); // 表单验证接口 $.MvcSheet.Validate = function () { $("#divPanelErrMsg").empty(); var isShowErr = false; var iCount = $("#ctl564913").find("tr[class=rows]").length; // 填写申请单环节,设置 mvcName 必填 if ($.MvcSheetUI.SheetInfo.ActivityCode == "Activity2") { if (this.Action == "Submit") { if (iCount == 0) { funErrMsgAdd("DepositDetails", "明细数据不能为空!"); isShowErr = true; } var UnitName = $.MvcSheetUI.GetControlValue("division"); var salesman = $.MvcSheetUI.GetControlValue("salesman"); if (UnitName != "国际工程公司(事业部)" && (salesman == "零售(项目经理)" || salesman == "直销")) { funErrMsgAdd("salesman", "销售人员不能为零售(项目经理)或者直销,请在CRM系统中修改项目经理!"); isShowErr = true; } var tenders1 = ""; application1 = ""; $("table[data-datafield=DepositDetails]").find("tr.rows").each(function () { datarow = $(this).attr("data-row"); tenders = $.MvcSheetUI.GetControlValue("DepositDetails.tenders", datarow); application = $.MvcSheetUI.GetControlValue("DepositDetails.application", datarow); if (datarow > 1) { if (tenders1.indexOf(tenders) >= 0) { if (application1.indexOf(application) >= 0) { } else { funErrMsgAdd("application", tenders + " 用途必须一致"); isShowErr = true; } } else { tenders1 = tenders1 + ";" + tenders; application1 = application1 + ";" + application; } } else { tenders1 = tenders; application1 = application; } }); } } if (isShowErr) { funErrMsg(); return false; } return true; } </script> @岩竹玉雨 |
|
5楼#
发布于:2017-03-28 11:02
MvcSheetAll.js代码
jQuery.extend($.MvcSheet, { Init: function (A) { this.LoadData(A) }, InitToolBar: function () { if ($.MvcSheet.Actions.length == 0) { $.MvcSheet.AddDefaultActions() } var B = $(".SheetToolBar").SheetToolBar($.MvcSheet.Actions); if ($.MvcSheetUI.SheetInfo.IsMobile) { var A = []; var D = function (G, F) { return { text: G.Text, handler: function () { G.ActionClick() }, actionKey: F } }; for (_Action in B.ControlManagers) { var E = B.ControlManagers[_Action]; //Add Start by 雷少华 2015-12-14 将提交在审批模式下改为批准 if (E.Text == "提交") { if ($.MvcSheetUI.SheetInfo.WorkItemType == 2) { E.Text = "批准"; } } //Add End if (E.MobileVisible) { A.push(D(E, _Action)) } } var C = $("#btnShowActions"); if (A.length == 0) { C.hide() } else { if (A.length == 1) { C.text(A[0].text); C.click(function () { B.ControlManagers[A[0].actionKey].ActionClick() }) } else { C.click(function () { $.ui.actionsheet(A) }) } } } }, InitHiddenFields: function () { $("input:hidden").each(function () { if ($(this).data("type") == "SheetHiddenField") { $(this).SheetHiddenField() } }) }, LoadData: function (A) { var B = "正在努力加载..."; $.MvcSheetUI.Loading = true; if (this.AjaxUrl.toLowerCase().indexOf("ismobile") > -1) { B = "" } $.LoadingMask.Show(B, false); $(".divContent:last").append('<div class="row tableContent"><div class="col-md-2"><span data-type="SheetLabel" data-datafield="Sheet__ConsultComment">征询意见</span></div><div class="col-md-10"><div data-datafield="Sheet__ConsultComment" data-type="SheetComment"></div></div></div>'); this.GetSheet({ "Command": this.LOADKEY }, function (E) { $.MvcSheetUI.SheetInfo = E; if (E.Message) { alert(E.Message); if (E.Close) { $.MvcSheet.ClosePage(); return } } $.MvcSheet.PreInit.apply(this, [$.MvcSheetUI.SheetInfo]); if ($.MvcSheet.InitFunctions.length > 0) { for (var D in $.MvcSheet.InitFunctions) { $.MvcSheet.InitFunctions[D].call(this, $.MvcSheetUI.SheetInfo) } } $.MvcSheet.PreInitLanguage(); $.MvcSheet.InitToolBar(); var O = $("[" + $.MvcSheetUI.PreDataKey + $.MvcSheetUI.DataFieldKey.toLowerCase() + "]"); var I = []; var H = []; for (var J = 0, L = O.length; J < L; J++) { var M = O[J]; if (M.tagName.toLowerCase() == "table") { H.push(M) } else { if ($(M).parents("tr.template").length == 0) { I.push(M) } } } for (J = 0, L = I.length; J < L; J++) { $(I[J]).SheetUIManager() } for (J = 0, L = H.length; J < L; J++) { $(H[J]).SheetUIManager() } $.MvcSheet.InitHiddenFields(); if ($.MvcSheetUI.SheetInfo.IsMobile) { var G = false; for (c in $.MvcSheetUI.ControlManagers) { if ($.MvcSheetUI.ControlManagers[c] instanceof $.MvcSheetUI.Controls.SheetComment) { var N = $($.MvcSheetUI.ControlManagers[c].Element).parent("div"); var K = $($.MvcSheetUI.ControlManagers[c].Element).parent("div").prev(".col-md-2"); $(K).removeClass("col-md-2").addClass("bannerTitle"); var F = $.MvcSheetUI.ControlManagers[c].Element; var C = $(F).parents("div.panel-body"); $(F).addClass("sheet-comment"); if ($.MvcSheetUI.ControlManagers[c].Editable && !G) { $(F).prependTo(C); $(K).prependTo(C); G = true } else { $(C).append(K); $(K).after(F) } N.hide() } } $(".col-md-2,.col-md-4,col-md-10").filter(function () { return $(this).children().length == 0 && (!$(this).text() || $(this).text().trim() == "") }).hide() } else { $("div[class^='col-md-']").each(function () { var S = true; if ($(this).text()) { S = false } else { var T = $(this).find("[" + $.MvcSheetUI.PreDataKey + $.MvcSheetUI.DataFieldKey.toLowerCase() + "]"); for (var Q = 0; Q < T.length; Q++) { var R = $(T).SheetUIManager(); if (!R) { var P = $(T).attr($.MvcSheetUI.PreDataKey + $.MvcSheetUI.DataFieldKey.toLowerCase()); alert("数据项:{" + P + "}不存在"); return } if (R.Visiable) { S = false; break } } } if (S) { $(this).hide() } }); $("div[class='row']").each(function () { if ($(this).find("div:visible[class^='col-md-']").length == 0) { $(this).hide() } }) } if (typeof (A) == "function") { A() } $.MvcSheet.RenderLanguage(); $.MvcSheet.Rendered.apply(this, [$.MvcSheetUI.SheetInfo]); $.MvcSheetUI.Loading = false; $.LoadingMask.Hide(); $.MvcSheet.Loaded.apply(this, [$.MvcSheetUI.SheetInfo]); if ($.MvcSheet.ReadyFunctions.length > 0) { for (var D in $.MvcSheet.ReadyFunctions) { $.MvcSheet.ReadyFunctions[D].call(this, $.MvcSheetUI.SheetInfo) } } }, function (C) { alert("表单数据加载失败,请稍候再试!") }) }, Ready: function (A) { $.MvcSheet.ReadyFunctions.push(A) }, PreInitLanguage: function () { var A = $.MvcSheetUI.SheetInfo.Language; if (typeof (SheetLanguages[A]) == "undefined" || SheetLanguages[A] == null) { A = "zh_cn" } $.extend(SheetLanguages.Current, SheetLanguages[A]) }, RenderLanguage: function () { var A = $.MvcSheetUI.SheetInfo.Language; if (A) { A = $.MvcSheetUI.PreDataKey + A.replace("-", "_"); $("span[" + A + "],label[" + A + "]").each(function () { $(this).html($(this).attr(A)) }) } }, PreInit: function () { }, PreLoad: function (A) { $.MvcSheet.InitFunctions.push(A) }, Loaded: function () { }, Rendered: function () { $("input,textarea,select").addClass($.MvcSheetUI.Css.inputMouseOut).unbind("mouseover.style").bind("mouseover.style", function () { var A = $(this); if (A.parent().is("li") && A.parent().parent().parent().is("div")) { A = A.parent().parent().parent() } A.removeClass($.MvcSheetUI.Css.inputMouseOut).addClass($.MvcSheetUI.Css.inputMouseMove) }).unbind("mouseenter.style").bind("mouseenter.style", function () { var A = $(this); if (A.parent().is("li") && A.parent().parent().parent().is("div")) { A = A.parent().parent().parent() } A.removeClass($.MvcSheetUI.Css.inputMouseMove).addClass($.MvcSheetUI.Css.inputMouseEnter) }).unbind("mouseout.style").bind("mouseout.style", function () { var A = $(this); if (A.parent().is("li") && A.parent().parent().parent().is("div")) { A = A.parent().parent().parent() } A.removeClass($.MvcSheetUI.Css.inputMouseEnter).removeClass($.MvcSheetUI.Css.inputMouseMove).addClass($.MvcSheetUI.Css.inputMouseOut) }); if ($.MvcSheetUI.SheetInfo.IsMobile) { var selects = $("select[data-datafield]"); if (selects && selects.length > 0) { for (var i = 0; i < selects.length; i++) { var manager = $(selects).SheetUIManager(); if ($(selects).attr("data-datafield").indexOf('.') > -1) { manager = $(selects).SheetUIManager($(selects).parent().parent().attr("data-row")); } if (manager && !manager.Editable) { $(selects).siblings(".afFakeSelect").hide(); } } } } $.MvcSheetUI.MvcRuntime = new Sheet() }, Action: function (A) { if (typeof (A.Mask) == "undefined" || A.Mask) { $.LoadingMask.Show((A.Text || SheetLanguages.Current.Doing) + "...") } var B = A.Action; var H = A.Datas; var C = { Command: B }; var D = []; if (typeof (A.LoadControlValue) == "undefined" || A.LoadControlValue) { if (H) { for (var E = 0; E < H.length; E++) { if (H[E].toString().indexOf("{") == 0) { var G = H[E].replace("{", "").replace("}", ""); D.push($.MvcSheetUI.GetControlValue(G)) } else { if (H[E].toString().indexOf("#") == 0) { var G = H[E].replace("#"); D.push($.MvcSheetUI.GetControlValue(H[E])) } else { D.push(H[E]) } } } } } else { D = H } C["Param"] = JSON.stringify(D); if (A.PostSheetInfo) { C["MvcPostValue"] = JSON.stringify(this.GetMvcPostValue(this.actionName)) } var F = this; this.PostSheet(C, function (I) { if (A.OnActionDone) { A.OnActionDone.apply(A, [I]) } F.ResultHandler.apply(F, [A, I]); if (A.CloseAfterAction) { $.MvcSheet.ClosePage() } $.LoadingMask.Hide() }, undefined, A.Async) }, ConfirmAction: function (B, A) { if ($.ui && $.ui.popup) { $.ui.blockUI(0.5); $.ui.popup({ title: SheetLanguages.Current.Notice, message: B, doneText: SheetLanguages.Current.OK, cancelText: SheetLanguages.Current.Cancel, cancelOnly: false, doneCallback: function (C) { A() } }) } else { if (confirm(B)) { A() } } }, ActionValidata: function (A, C) { var B = true; if (this.Validate) { B = this.Validate.apply(A) } if (B || B == undefined) { return $.MvcSheetUI.Validate(C) } else { return false } }, Save: function (A) { if (!$.MvcSheet.ActionValidata(A, true)) { return false } $.LoadingMask.Show(SheetLanguages.Current.Saving); var C = this.GetMvcPostValue(this.Action_Save); var B = this; this.PostSheet({ Command: this.Action_Save, MvcPostValue: JSON.stringify(C) }, function (D) { B.ResultHandler.apply(B, [A, D]) }) }, Submit: function (A, D, F, C, E) { if (!$.MvcSheet.ActionValidata(A)) { return false } var B = this; $.MvcSheet.ConfirmAction(SheetLanguages.Current.ConfirmDo + "[" + D + "]" + SheetLanguages.Current.Operation + "?", function () { $.LoadingMask.Show(SheetLanguages.Current.Sumiting); var G = B.GetMvcPostValue(B.Action_Submit, F, C, E); B.PostSheet({ Command: B.Action_Submit, MvcPostValue: JSON.stringify(G) }, function (H) { B.ResultHandler.apply(B, [A, H]) }) }) }, ControlInit: function () { }, ControlPreRender: function () { }, ControlRendered: function () { }, Reject: function (A, C) { if (!$.MvcSheet.ActionValidata(A)) { return false } $.LoadingMask.Show(SheetLanguages.Current.Rejecting); var D = this.GetMvcPostValue(this.Action_Reject, C); var B = this; this.PostSheet({ Command: this.Action_Reject, MvcPostValue: JSON.stringify(D) }, function (E) { B.ResultHandler.apply(B, [A, E]) }) }, FinishInstance: function (A) { $.LoadingMask.Show(SheetLanguages.Current.Finishing); var C = this.GetMvcPostValue(this.Action_FinishInstance); var B = this; this.PostSheet({ Command: this.Action_FinishInstance, MvcPostValue: JSON.stringify(C) }, function (D) { B.ResultHandler.apply(B, [A, D]) }) }, RetrieveInstance: function (A) { $.LoadingMask.Show(SheetLanguages.Current.Retrieving); var B = this; this.GetSheet({ Command: this.Action_RetrieveInstance }, function (C) { B.ResultHandler.apply(B, [A, C]) }) }, GetMvcPostValue: function (A, D, B, C) { var E = { Command: A, DestActivityCode: D, PostValue: B, GroupValue: C, BizObjectId: $.MvcSheetUI.SheetInfo.BizObjectID, InstanceId: $.MvcSheetUI.SheetInfo.InstanceId, BizObject: {} }; E.BizObject.DataItems = $.MvcSheetUI.SaveSheetData(A); E.Priority = $.MvcSheetUI.Priority; E.HiddenFields = $.MvcSheetUI.HiddenFields; return E }, ResultHandler: function (A, D) { if ($.MvcSheet.ActionDone) { $.MvcSheet.ActionDone.apply(A, [D]) } if (D == "undefined" || D == null) { return } if (D.Successful) { if ($.MvcSheetUI.SheetInfo.IsMobile) { window.location.href = D.MobileReturnUrl } else { if (D.ClosePage) { $.MvcSheet.ClosePage() } else { if (D.Url) { window.location.href = D.Url } else { if (D.Message) { if (D.Refresh) { var C = window.location.href; C = C.replace("&T=", "&T=" + Math.round(Math.random() * 100, 0)); window.location.href = C } } else { } } } } } else { if (D.Errors) { for (var B = 0; B < D.Errors.length; B++) { alert(D.Errors[B]) } } } $.LoadingMask.Hide() }, ClosePage: function () { if (window.opener != null && window.opener.location != null && window.opener.location.href != window.location.href && $.MvcSheetUI.QueryString("Mode").toLowerCase() != "originate") { window.opener.location.reload() } window.opener = null; window.open("", "_self"); window.close() }, AddDefaultActions: function () { this.Actions.splice(0, this.Actions.length, this.RetrieveInstanceAction, this.SaveAction, this.ViewInstanceAction, this.PreviewParticipantAction, this.PrintAction, this.ViewedAction, this.CancelInstanceAction, this.SubmitAction, this.RejectAction, this.FinishInstanceAction, this.ForwardAction, this.AssistAction, this.ConsultAction, this.CirculateAction, this.AdjustParticipantAction, this.LockInstanceAction, this.UnLockInstanceAction, this.CloseAction) }, AddAction: function (A) { if ($.MvcSheetToolbar.AddButton) { $.MvcSheetToolbar.AddButton(A) } else { if (this.Actions.length == 0) { this.AddDefaultActions() } } if (A.PreAction) { for (var B in this.Actions) { if (this.Actions[B].Action == A.PreAction) { if (B < this.Actions.length - 1) { B++ } this.Actions.splice(B, 0, A); break } } } else { this.Actions.push(A) } }, GetSheet: function (D, A, B, C) { $.ajax({ type: "GET", url: this.AjaxUrl, data: D, dataType: "json", async: C != null ? C : true, success: A, error: B }) }, PostSheet: function (E, A, C, D) { var B = this.AjaxUrl; if (B.toLowerCase().indexOf("&bizobjectid=") == -1) { B = this.AjaxUrl + "&BizObjectID=" + $.MvcSheetUI.SheetInfo.BizObjectID } if (typeof (D) == "undefined") { D = true } if (typeof (C) == "undefined") { C = function (F) { alert("系统出现异常!"); $.LoadingMask.Hide() } } $.ajax({ type: "POST", url: B, data: E, dataType: "json", async: D, success: A, error: C }) } }); |
|
6楼#
发布于:2017-03-28 11:05
|
|
7楼#
发布于:2017-03-28 11:12
|
|
|
9楼#
发布于:2017-03-28 14:02
从你的代码截图来看,你用的应该是9.2.6版本。
从错误截图来看是理应是自定义按钮错误是没错。但是我把你的js代码放在我的页面上,屏蔽部分没有的方法后是没有问题的。 所以: 先检查pc页面,看控制台是否有报错。保证pc页面js无报错才能转移动页面。 |
|
|