天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 1620|回复: 10

[已解决] 按钮动作为“返回”的情况下,如何用脚本实现跳转视图

[复制链接]
北京智源普华 发表于 2022-8-24 17:56:08 | 显示全部楼层 |阅读模式
【myApps/OBPM版本号】:v4.4- sp 21
【浏览器类型】:Chrome/其他
【联系方式-QQ】:991466514
【联系电话】:    请留下您的联系电话,以便技术同事更好解决您的问题
【问题描述】:

表单中添加了一个按钮,动作为“返回”,如何在动作执行前写脚本,实现跳转到另一个视图?(试过用跳转动作跳转到指定URL,但是有问题,需要点两下才会跳转)
小雯洁洁 发表于 2022-8-25 16:35:37 | 显示全部楼层
您好,用跳转按钮需要点击两次吗?会不会是您卡了呢,我这边不会哦,您再试试看

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
 楼主| 北京智源普华 发表于 2022-8-25 16:54:14 | 显示全部楼层
小雯洁洁 发表于 2022-8-25 16:35
您好,用跳转按钮需要点击两次吗?会不会是您卡了呢,我这边不会哦,您再试试看

我这边的版本确实是不行的,我把脚本贴在下面麻烦帮看下,实现的是一个签到功能,进去之后点了签到按钮,想让他点了后跳转到签到记录视图中去,结果得点第二次才跳过去
 楼主| 北京智源普华 发表于 2022-8-25 16:55:11 | 显示全部楼层
//有获取gps信息问题,使用打开表单,通过form_id获取设置信息,一个地址建一个表单
var doc = getCurrentDocument();
var r_id=doc.getFormid();
var WebUser = getWebUser();
var Userid = WebUser.getId();
var sql="select * from tlk_qr_sign_sitelist where item_qr_id='"+r_id+"'";
var datas=findBySQL(sql);
if(datas!=null){
        var qr_lon=datas.getItemValueAsString("qr_lon");
        var qr_lat=datas.getItemValueAsString("qr_lat");
        var err_dis=datas.getItemValueAsString("site_r");
        var time_r=datas.getItemValueAsString("stime_r");
        var qr_name=datas.getItemValueAsString("qr_name");
        var qr_site=datas.getItemValueAsString("qr_site");
        var qr_no=datas.getItemValueAsString("qr_no");
    var sDate=new Date();
        var stime=format(sDate,"yyyy-MM-dd HH:mm:ss");

//js计算时间
        var sdate1=new Date(sDate.getTime()-time_r*60*1000);
        var stimer1=format(sdate1,"yyyy-MM-dd HH:mm:ss");

//时间判断
        var sql0 = "select * from tlk_qr_sign_his where item_qr_id = '"+r_id+"' and item_user_id = '"+Userid+"' and item_sign_time>'"+stimer1+"'";
          var t_count = countBySQL(sql0);

        if(t_count>0){
                createAlert("你已经在"+time_r+"分钟内签到了,不需再次签到!");
        }else{
                var gps = doc.getItemValueAsString("qr_gps");
                var dep="["+gps+"]";
                var lati=0;
                var longi=0;
              var sitei=0;
                var jsonArray = new Packages.org.json.JSONArray(dep);
                for(var i=0;i<jsonArray.length();i++){
                        var jsonObject = jsonArray.getJSONObject(i);
                        lati= jsonObject.getDouble("latitude");

                        longi= jsonObject.getDouble("longitude");

                        sitei= jsonObject.getString("address");

                }
//计算距离
                var lon1=qr_lon*Math.PI/180;
                var lat1=qr_lat*Math.PI/180;
                var lon2=longi*Math.PI/180;
                var lat2=lati*Math.PI/180;
                var b=lon1-lon2;
                var a=lat1-lat2;
                var s=2*Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2)+Math.cos(lat1)*Math.cos(lat2)*Math.pow(Math.sin(b/2),2)));
                var r1=6371.393*1000*s;
                if(parseDouble(r1.toFixed(6)) <= parseDouble(err_dis)){
                        var user_name = WebUser.getName();
                        var DepartmentId = WebUser.getDefaultDepartment();
                        var depprocess = getDepartmentProcess();
                        var dep = depprocess.doView(DepartmentId);
                        var dept_name = dep.getName();                       
                        var process = getDocumentProcess();      
                        var formProcess = getFormProcess();      
                        var newForm = formProcess.doViewByFormName("qr_sign_his",getApplication());
                        var doc1 = process.doNew(newForm,WebUser,createParamsTable());
                        doc1.addStringItem("sign_name",user_name);
                        doc1.addStringItem("user_id",Userid );
                        doc1.addStringItem("dept_name",dept_name);
                        doc1.addStringItem("dept_id",DepartmentId);
                        doc1.addStringItem("sign_time",stime);
                        doc1.addStringItem("gps_site",sitei);
                        doc1.addStringItem("gps_lon",longi);
                        doc1.addStringItem("gps_lat",lati);
                        doc1.addStringItem("qr_name",qr_name);
                        doc1.addStringItem("qr_site",qr_site);
                        doc1.addStringItem("qr_lon",qr_lon);
                        doc1.addStringItem("qr_lat",qr_lat);
                        doc1.addStringItem("qr_no",qr_no);
                        doc1.addStringItem("qr_id",r_id);
                        doc1.addStringItem("gps_r",r1);
                        process.doCreate(doc1);
                        createAlert("签到成功");
                }else{
                        createAlert("距离签到地点"+r1+"米,无法签到");
                }
        }
        var request = $WEB.getParamsTable().getHttpRequest();
        var urlt="http://" + request.getServerName()+":" + request.getServerPort() + request.getContextPath();
        var appid = doc.getApplicationid();
//跳转为手机模式视图,应只设置手机菜单或电脑不可用,需要固定视图id
        var url=urlt+"/mobile/index.html#/open?linkType=01&appId="+appid+"&actionContent=__yfJ5WUX3jSYcvvW1vUg";
        url;
}else{
        createAlert("二维码地址失效,无法签到!")
}




小雯洁洁 发表于 2022-8-26 17:33:25 | 显示全部楼层
您好,可以F12看一下第一次有没有调用到接口。
 楼主| 北京智源普华 发表于 2022-8-29 09:35:37 | 显示全部楼层
小雯洁洁 发表于 2022-8-26 17:33
您好,可以F12看一下第一次有没有调用到接口。

那是肯定调用到了的,其实第一次点的时候数据已经插到相关表单去了,但是就是不跳转
小雯洁洁 发表于 2022-8-29 17:53:31 | 显示全部楼层
您好,接口返回了,有没有获取到URL,可以提供一下相关的截图吗?
 楼主| 北京智源普华 发表于 2022-8-30 16:44:22 | 显示全部楼层
小雯洁洁 发表于 2022-8-29 17:53
您好,接口返回了,有没有获取到URL,可以提供一下相关的截图吗?

提供截图没啥意义的,因为手机端签到的话没法获取调试信息,电脑端的话可以print

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
小雯洁洁 发表于 2022-8-30 17:53:03 | 显示全部楼层
您好,这边联系一下您,帮您远程看看
 楼主| 北京智源普华 发表于 2022-8-31 17:46:01 | 显示全部楼层
本帖最后由 北京智源普华 于 2022-8-31 17:47 编辑

试了下单独把URL放在自定义按钮里面是可以跳转的,所以应该是脚本写的有问题,上面一开始已经放出完整脚本来了,请看下需要如何修改

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 23:46

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表