移动端定位打卡

签到按钮脚本

Mobile_NS.getCurrPosition(function(result){
    var lngdangq = result["lng"];
    var lathoum = result["lat"];
    var minDistance = null;

    //alert("addr"+addr);
    var dkzt = $f("dkzt").val(); 
    //alert(dkzt);
    if(dkzt==0){
        //$f("khmc").setRequired(true); 
         // alert("正常");
        //var jwd = $f("jwd").val();
        /* 迭代明细表行 */ 
        //alert("dkzt:"+dkzt);
        var count=$dt("uf_ywykhdk_dt1").getRowCount();
        
        if(count==0){
             Mobile_NS.alert("该客户还未维护打卡地址经纬度,请联系马远秀进行维护");
        }
        var pd = false;
        $dt("uf_ywykhdk_dt1").eachRow(function(rowIndex, data){
        
            var jwd =data["jwd"];
            var dz =data["dz"];
            //alert("jwd:"+jwd);
            // Mobile_NS.alert("dz:"+dz)
            if(jwd != null && jwd != ''){
                var fenzu = jwd.split(",");
                var staVal = {lng: lngdangq, lat: lathoum};
                var endVal = { lng: fenzu[0], lat: fenzu[1]};
                var zjl = calcCoordsDistance(staVal, endVal).originVal // {mVal: '638.59m', kmVal: '0.63859km', originVal: '638.5888697736245'}
                if(minDistance == null){
				    minDistance = zjl;
		        } else if(zjl < minDistance){
			    	minDistance = zjl;
			    }
                if(zjl<1200){
                    var ywy = $f("ywy").val();//业务员
                    var khmc = $f("khmc").val();//客户名
                    var qdrq = $f("qdrq").val();//签到日期
                    var qdsj = $f("qdsj").val();//签到时间
  
                    $f("qddz").val(dz);  //签到地点
                    Mobile_NS.formSubmit("CAB2D8B850E0000164F11B30123015DE", function(billid) {
                        Mobile_NS.alert(qdrq+" "+qdsj+"签到成功");
                    });
                    pd = true;
                }
            }
 
        });
        if(!pd){
	        Mobile_NS.alert("打卡位置距离定位"+minDistance+"米,不在打卡范围内禁止提交,如有疑问请联系马远秀");
        }
       
}else if(dkzt==1){
        //$f("khmc").setRequired(true);    
        var ywy = $f("ywy").val();//业务员
        var khmc = $f("khmc").val();//客户名
        var qdrq = $f("qdrq").val();//签到日期
        var qdsj = $f("qdsj").val();//签到时间
        //var qddzcs = $f("qddzcs").val();//签到时间
        //alert("地址:"+qddzcs);
        // $f("qddz").val(dz);  //签到地点
        Mobile_NS.formSubmit("CAB2D8B850E0000164F11B30123015DE", function(billid) {
        Mobile_NS.alert(qdrq+" "+qdsj+"签到成功");
        });
    }else if(dkzt==2){
        // alert("特殊情况");
        //$f("ycmc").setRequired(true); 
        var ywy = $f("ywy").val();//业务员
        var khmc = $f("khmc").val();//客户名
        var qdrq = $f("qdrq").val();//签到日期
        var qdsj = $f("qdsj").val();//签到时间
        //var qddzcs = $f("qddzcs").val();//签到时间
        //alert("地址:"+qddzcs);
        // $f("qddz").val(dz);  //签到地点
        Mobile_NS.formSubmit("CAB2D8B850E0000164F11B30123015DE", function(billid) {
            Mobile_NS.alert(qdrq+" "+qdsj+"签到成功");
        
        });
    }        
});
//计算两个经纬度的差值
function calcCoordsDistance(startDot, endDot) {
  if (!startDot || !endDot) {
    return { mVal: "", kmVal: "", originVal: "两点的经纬度为必传" };
  }
  const earthRadius = 6378137.0; // 地球半径
  const PI = Math.PI // 圆周率π
  const startRadianLat = getRadian(startDot.lat,PI); // 纬度 - 开始
  const endRadianLat = getRadian(endDot.lat,PI); // 纬度 - 结束
  const latDiffVal = startRadianLat - endRadianLat; // 维度差值
  const lngDiffVal = getRadian(startDot.lng,PI) - getRadian(endDot.lng,PI); // 经度差值
  const  latDiffSinVal = Math.sin(latDiffVal / 2); // 维度差值的正弦值
  const  lngDiffSinVal = Math.sin(lngDiffVal / 2); // 经度差值的正弦值
  const  latCosProduct = Math.cos(startRadianLat) * Math.cos(endRadianLat); // 维度的余弦值乘积
  const  powVal = latCosProduct * Math.pow(lngDiffSinVal, 2);
const   sqrtVal = Math.pow(latDiffSinVal, 2) + powVal; // 开平方根的值
const   result = 2 * Math.asin(Math.sqrt(sqrtVal)) * earthRadius; // 结果值
const   mUnit = result.toFixed(2) + "m"; // 单位米
const   kmUnit = (result / 1000).toFixed(5) + "km"; // 单位千米)
  return { mVal: mUnit, kmVal: kmUnit, originVal: result.toString() };
}

function getRadian(d,PI) {
    return (d * PI) / 180.0;
  }

打卡状态源码
/*
请在此处直接键入JavaScript代码,首次使用建议先点击右上角的帮助图标了解注意事项
*/

$load(function() {
    //打卡状态
    $f("dkzt").on("change", function(){ 
        var dkzt = $f("dkzt").val(); /* 获取字段title的值 */
      if(dkzt==0){
          $f("khmc").setRequired(true); 
          $f("khmc").show(); 
          $f("ycmc").hide();   /* 隐藏字段 */
          $f("ycmc").setReadonly(true);  /* 设置字段title只读,true:只读   false:非只读 */
          $f("ycmc").setRequired(false);   /* 设置字段title必填,true:必填   false:非必填 */

      }else if(dkzt==1){
           $f("khmc").show();
          $f("khmc").setRequired(true); 
          $f("khmc").setReadonly(false); 
          $f("ycmc").hide(); 
          $f("ycmc").setReadonly(true);
           $f("ycmc").setRequired(false); 

      }else if(dkzt==2){
          $f("ycmc").setRequired(true); 
          $f("ycmc").setReadonly(false);
           $f("khmc").hide();
            $f("ycmc").show();
          $f("khmc").setReadonly(true);
          $f("khmc").setRequired(false); 

      } 
    });
});
/* 执行插件(页面)加载完成后的回调操作 */
$pluginLoad('CAB85CDB2AC00001A799C6C114FE13AD', function() {
    $f("khmc").setRequired(true); 
      $f("ycmc").hide(); 
});


posted @ 2024-05-10 19:18  LL爱吃香菜  阅读(8)  评论(0编辑  收藏  举报