Prechádzať zdrojové kódy

任家庄车辆申请

手机端
psto 2 rokov pred
rodič
commit
0f43d2ee89

+ 34 - 30
webmain/flow/input/inputAction.php

@@ -420,11 +420,14 @@ class inputAction extends Action
 		$this->backmsg('', '', $arr);
 	}
 	
-	
+	/*
+	 * 移动端入口
+	 */
 	public function lumAction()
 	{
 		$ybarr	 = $this->option->authercheck();
 		if(is_string($ybarr))return $ybarr;
+        // 标记移动端
 		$this->ismobile = 1;
 		$this->luactions();
 	}
@@ -475,7 +478,7 @@ class inputAction extends Action
 		$moders		= $this->flow->moders;
 		$modename 	= $moders['name'];
 		if($moders['status']=='0')exit('模块['.$modename.']已停用了;');
-		
+
 		$apaths		= ''.P.'/flow/input/mode_'.$moders['num'].'Action.php';
 		if(!file_exists($apaths))exit('没有创建布局录入页面,无法打开,请到【流程模块→表单元素管理】下的点按钮“PC端录入页面布局”,更多查看'.c('xinhu')->helpstr('bwb3mf').'。');
 		$isflow		= (int)$moders['isflow'];
@@ -494,15 +497,15 @@ class inputAction extends Action
 			$isadd = m('view')->isadd($modeid, $uid);
 			if(!$isadd)exit('无权添加['.$modename.']的数据,请到[流程模块→流程模块权限]下添加权限');
 		}
-		
+
 		$content 	= '';
 		$oldrs 		= m($moders['table'])->getone($mid);
 		$this->rs 	= $oldrs;
 		$this->gongsiarr = array();
-		
+
 		$fieldarr 	= m('flow_element')->getrows("`mid`='$modeid' and `iszb`=0 $stwhe",'fields,fieldstype,name,dev,data,isbt,islu,attr,iszb,issou,gongsi,placeholder,lens','`sort`');
 		$fieldarr	= $this->flow->flowfieldarr($fieldarr, $this->ismobile);
-		
+
 		$modelu		= '';
 		$fieldstypearr = array();
 		foreach($fieldarr as $k=>$rs){
@@ -512,7 +515,7 @@ class inputAction extends Action
 			if($lutype==1){
 				$rs['isbt'] = 0;
 				if($rs['issou']==1)$modelu.='{'.$rs['fields'].'}';
-			}else{	
+			}else{
 				if($rs['islu'] || $stwhe!='')$modelu.='{'.$rs['fields'].'}';
 				if(!isempt($rs['gongsi']) && contain($rs['gongsi'],'{'))$this->gongsiarr[] = array(
 					'iszb' 	 => 0,
@@ -523,7 +526,7 @@ class inputAction extends Action
 			$this->fieldarr[$rs['fields']] = $rs;
 			if($rs['islu']==1)$fieldstypearr[] = $rs['fieldstype'];
 		}
-		
+
 		$this->smartydata['fieldsjson']	= json_encode($fieldarr);
 		$this->moders	= $moders;
 		$zbshu			= 0;
@@ -539,14 +542,15 @@ class inputAction extends Action
 		}
 		$pclucont 		= '';
 		if(file_exists($path))$pclucont 	= file_get_contents($path);
-		
+
 		$isupfile		= 0;
 		$nameaas 		= explode(',', $moders['names']); //子表名
 
 		//PC端
 		if($this->ismobile==0){
 			$content = $pclucont;
-		}else{
+		} else {
+            // 移动端
 			$content = $modelu;
 			if($tableas && $slx==0){
 				foreach($tableas as $k1=>$tableass){
@@ -568,13 +572,13 @@ class inputAction extends Action
 				}
 			}
 			$isupfile = contain($pclucont, '{file_content}') ? 1 : 0;
-			
+
 		}
-		
+
 		if($content=='')exit('未设置录入页面,请到[流程模块→表单元素管理]下设置');
-		
+
 		$content		= $this->flow->flowinputtpl($content, $this->ismobile);
-		
+
 		$this->actclss	= $this;
 		$pathss 		= ''.P.'/flow/input/mode_'.$num.'Action.php';
 		if(file_exists($pathss)){
@@ -586,7 +590,7 @@ class inputAction extends Action
 			$this->actclss->rs 		= $this->rs;
 			$this->actclss->ismobile= $this->ismobile;
 		}
-		
+
 		//初始表单插件元素
 		$this->fieldarrall	= $this->fieldarr;
 		$this->inputobj	= c('input');
@@ -595,14 +599,14 @@ class inputAction extends Action
 		$this->inputobj->flow 		= $this->flow;
 		$this->inputobj->mid 		= $this->mid;
 		$this->inputobj->initUser($this->adminid);
-		
+
 		$chufarr= array();
 		if(method_exists($this->flow, 'flowxiangfields'))$chufarr = $this->flow->flowxiangfields($chufarr);
 		$this->fieldarrall['base_sericnum'] = array('name'=>arrvalue($chufarr,'base_sericnum','单号'));
 		$this->fieldarrall['base_name'] 	= array('name'=>arrvalue($chufarr,'base_name','申请人'));
 		$this->fieldarrall['base_deptname'] = array('name'=>arrvalue($chufarr,'base_deptname','申请人部门'));
 		$this->fieldarrall['file_content']  = array('name'=>arrvalue($chufarr,'file_content','相关文件'));
-		
+
 		preg_match_all('/\{(.*?)\}/', $content, $list);
 		foreach($list[1] as $k=>$nrs){
 			$str		= $this->inputobj->getfieldcont($nrs, $this->actclss);
@@ -611,21 +615,21 @@ class inputAction extends Action
 		$this->subfielsa = array();
 		$content 	 	= $this->pisubduolie($content, $modeid, $nameaas);//多列子表匹配的是[]
 		$content		= str_replace('*','<font color=red>*</font>', $content);
-		
+
 		//替换字段名^^
 		preg_match_all('/\^(.*?)\^/', $content, $list);
 		foreach($list[1] as $k=>$nrs){
 			$fzdrs = arrvalue($this->fieldarrall, $nrs);
 			if($fzdrs)$content	= str_replace('^'.$nrs.'^', $fzdrs['name'], $content);
 		}
-		
+
 		$course			= array();
 		$nowcourseid	= 0;
 		if($isflow>0 && $lutype==0){
 			$course[]= array('name'=>'提交','id'=>0);
-			
-			
-			
+
+
+
 				$courses	= $this->flow->getflowpipei($this->adminid);
 				if($mid>0){
 					$nowcourseid = $this->flow->billmodel->getmou('nowcourseid',"`table`='".$this->flow->mtable."' and `mid`='$mid'");
@@ -639,7 +643,7 @@ class inputAction extends Action
 					if(arrvalue($moders,'isflowlx')=='1'){
 						$rs1['isnow'] = $k==0; //如果走重头审批第一步就是第一步的
 					}
-					
+
 					//读取上次选择的2019-03-06 23:10:00添加
 					$cuid 	= $name = '';
 					if($rs1['isnow'] && $rs1['checktype']=='change' && $mid>0){
@@ -657,12 +661,12 @@ class inputAction extends Action
 					}
 					$rs1['sysnextoptid']= $cuid;
 					$rs1['sysnextopt']	= $name;
-					
+
 					$course[]=$rs1;
 				}
-				
-			
-			
+
+
+
 			$course[]= array('name'=>'结束','id'=>-1);
 		}
 		$this->title  					= $this->flow->inputtitle();//录入页面的标题
@@ -672,14 +676,14 @@ class inputAction extends Action
 		$this->smartydata['mid']		= $mid;
 		$this->smartydata['isflow']		= $isflow;
 		$this->smartydata['showtype']	= $this->get('showtype');
-		
+
 		$this->smartydata['zbnamearr']	= $nameaas;
 		$this->smartydata['zbshu']		= $zbshu;//子表数
 		$this->smartydata['isupfile']	= $isupfile;//是否有上传
 		$this->assign('inputobj', c('input'));
-		
-		
-		
+
+
+
 		$this->smartydata['course']		= $course;
 		$inpwhere	= $this->flow->inputwidth;
 		if($inpwhere<200)$inpwhere = $this->option->getval('inputwidth', 750);

+ 279 - 3
webmain/flow/input/inputjs/mode_rjz_car_apply.js

@@ -2,14 +2,290 @@
 function initbodys() {
 
     c.onselectdata['car_type'] = function (d) {
-        console.log(d);
+        // console.log(d);
         js.ajax(geturlact('getFreeCarCon'), {car_type: d.name}, function (res) {
             var data = JSON.parse(res);
             if (data.success) {
-                form('surplus').value = data.data.car_free_con;
+                if (isMobile()) {
+                    var htmlDom = $('.lumtr .form_title')[1];
+                    var htmlStr = '<font color="red">*</font>车辆类型<font color="red" font-szie="12"> (剩余 '+data.data.car_free_con+' 辆 '+d.name+')</font>';
+                    $(htmlDom).html(htmlStr);
+                    form('free_car_con').value = data.data.car_free_con;
+                } else {
+                    form('free_car_con').value = data.data.car_free_con;
+                }
             }
         }, 'get, json');
     }
-    // $(c.onselectdata['car_type'])
+
+    if (isMobile()) {
+
+        setTimeout(function() {
+            var time = getNowDatetime();
+            var step = getStep();
+
+            // 获取车辆类型
+            var carType = getInputVal('input_car_type');
+
+            console.log(step);
+
+            if (step === 'dispatch_assess') {
+                setCarFreeCon(carType);
+            } else if (step === 'fleet_select_car') {
+                // 显示数量
+                setCarFreeCon(carType);
+                // 选择车辆
+                setSelectCar(carType);
+            } else if(step === 'load_car_succ') {
+                // 设置装车结束时间
+                $("#div_load_end_time input").attr('value', time);
+                $("*[name='load_end_time']").removeAttr('onclick');
+            } else if (step == 'fleet_assess_load_car_succ') {
+                // 设置实际使用完毕时间
+                load_end_use();
+            } else if (step == 'load_end_use') {
+                // 设置实际使用完毕时间
+                $("*[name='actual_end_time']").attr('value', time);
+                $("*[name='actual_end_time']").removeAttr('onclick');
+            } else if (step === 'fleet_assess_load_end_use') {
+                setAssessSuccStep();
+                submitAssessSucc();
+            } else {
+
+            }
+
+        }, 100);
+    }
+
+    function load_end_use() {
+
+        // 判断是否同意
+        // 同意需要先处理数据,再提交;不同意则用原始方法提交。
+        $("*[name='check_status']").click(function(){
+            var agree = $(this).attr('value');
+            if (agree == 1) {
+                getUpdateCarStateApi('使用中');
+            } else {
+                check(0);
+            }
+        });
+    }
+
+    // 判断函数
+    function getStep() {
+
+        var step_text_original = '';
+        step_text_original = $("#input_step").text();
+        var step_text = step_text_original.split('(')[0];
+
+        var carnameStep         = $("#btn_carname").length; // 选择车辆步骤
+        var loadCarSuccStep     = $("*[name='load_end_time']").length; // 装车完成1
+        var endUseStep          = $("*[name='end_time']").length; // 使用结束时间
+        var parkingLocationStep = $("*[name='parking_location']").length; // 停车场
+        var assesLocationStep   = $("*[name=assess_car_location]").length; // 审核车场
+        // var assesTimeStep       = $("*[name=assess_time]").length; // 审核时间
+
+        if (step_text == '调度室审批') {
+            return 'dispatch_assess';
+        } else if (step_text == '运输队审批' && carnameStep == 1) {
+            return 'fleet_select_car';
+        } else if (step_text == '装车完成' && loadCarSuccStep == 1) {
+            return 'load_car_succ';
+        } else if (step_text == '运输队审核' && endUseStep == 1) {
+            return 'fleet_assess_load_car_succ';
+        } else if (step_text == '使用完毕' && parkingLocationStep == 1) {
+            return 'load_end_use';
+        } else if (step_text == '运输队审核' && assesLocationStep == 1) {
+            return 'fleet_assess_load_end_use';
+        }
+
+    }
+
+
+    function getInputVal(inputNameStr) {
+        carType = $("*[name="+inputNameStr+"]").val();
+        return carType;
+    }
+
+    function isMobile() {
+        var userAgentInfo = navigator.userAgent;
+
+        var mobileAgents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
+
+        var mobile_flag = false;
+
+        //根据userAgent判断是否是手机
+        for (var v = 0; v < mobileAgents.length; v++) {
+            if (userAgentInfo.indexOf(mobileAgents[v]) > 0) {
+                mobile_flag = true;
+                break;
+            }
+        }
+        var screen_width = window.screen.width;
+        var screen_height = window.screen.height;
+
+        //根据屏幕分辨率判断是否是手机
+        if (screen_width > 325 && screen_height < 750) {
+            mobile_flag = true;
+        }
+
+        return mobile_flag;
+    }
+
+    function getNowDatetime() {
+
+        var date = new Date();
+        var year = date.getFullYear();    //  返回的是年份
+        var month = date.getMonth() + 1;  //  返回的月份上个月的月份,记得+1才是当月
+        var dates = date.getDate();
+        var h = date.getHours();
+        var m = date.getMinutes();
+        var s = date.getSeconds();
+
+        if(month<10)month="0"+month;
+        if(date<10)date="0"+date;
+        var time=year + "-" + month + "-" + dates + ' ' + h + ':' + m + ':' + s;
+
+        return time;
+    }
+
+    // 操作函数
+
+    function setCarFreeCon(carType) {
+
+        $(".car_con_col").show();
+        var carTypeJson = "car_type="+carType;
+        // 显示申请车辆类型剩余数量
+        js.ajax(geturlact('getFreeCarCon'), carTypeJson, function (res) {
+            if(res.success) {
+                 var trStr = '<tr><td style="vertical-align:text-top;"><div align="left" style="color:#000;padding:6px 0px 3px;font-size:16px;font-weight:bold;color: red">空闲的 '+carType+' 数量</div><div style="padding:8px 10px 8px 10px;color:#3A3A3C;font-size:15px;width:94%;min-height:15px;border:1px solid #dcdcdc;border-radius:5px;color: red" align="left">'+res.data.car_free_con+'</div></td><td></td></tr>'
+                $("#mobile_info_table").append(trStr);
+                console.log(res);
+                $('*[name=surplus]').val(res.data.car_free_con);
+                $('*[name=car_con]').val(res.data.car_con);
+            }
+        }, 'get, json');
+    }
+
+    function setSelectCar(carType) {
+        // 替换原来onclick方法,增加参数
+
+        $("#btn_carname").removeAttr('onclick');
+        $("#btn_carname").click(function (){
+            c.selectdata('carNum',false,'carname','申请车辆',1, carType);
+        });
+
+        // 选择车辆
+        var carnameStep = $("#btn_carname").length; // 选择车辆步骤
+        // 判断是否选择车辆步骤,不是选择车辆步骤,则用默认方式提交
+        if (carnameStep > 0) {
+            var isAgree;
+            // 判断是否同意
+            $("*[name='check_status']").click(function(){
+                var agree = $(this).attr('value');
+                console.log(agree);
+                if (agree == 1) {
+                    getUpdateCarStateApi('装车');
+                } else {
+                    check(0);
+                }
+                c.changecheck_status(this);
+            });
+        }
+    }
+
+
+    function setAssessSuccStep() {
+
+        // 设置默认值(出现控件时再设置)
+        var input_parking_location = $("*[name=input_parking_location]").val();
+        $("*[name=assess_car_location]").val(input_parking_location);
+
+        $("*[name=assess_time]").attr('id','assess_time');
+        var assess_time = $("*[name=assess_time]").length;
+        var input_actual_end_time = $("*[name=input_actual_end_time]").val();
+        if (assess_time && input_actual_end_time != null) {
+            $("*[name=assess_time]").val(input_actual_end_time);
+        }
+
+        $("*[name=assess_location]").val('否');
+        $("*[name=assess_car_location]").attr('id','assess_car_location');
+        $('#assess_car_location').change(function () {
+            var sj = $("*[name=input_parking_location]").val();
+            var sh = $(this).val();
+            if (sj != sh) {
+                var sj = $("*[name=assess_location]").val('是');
+            } else {
+                var sj = $("*[name=assess_location]").val('否');
+            }
+        })
+
+    }
+
+
+    function submitAssessSucc() {
+        // 替换原提交方法,处理后再提交 check(0)
+        // $("#check_btn").removeAttr('onclick');
+
+        // 审核还车时间
+        var car_location = getInputVal('input_parking_location'); // 车场
+        var assess_car_location = getInputVal('assess_car_location');  // 审核车场
+
+        var end_time = getInputVal('input_actual_end_time'); // 实际还车时间
+        var assess_time = getInputVal('assess_time'); // 审核还车时间
+
+
+        var time1 = new Date(end_time);
+        var time2 = new Date(assess_time);
+
+        // 时间差半小时考核
+        var date = time2.getTime() - time1.getTime();
+        var days    = date / 1000 / 60 / 60 / 24;
+        var daysRound   = Math.floor(days);
+        var hours    = date/ 1000 / 60 / 60 - (24 * daysRound);
+        var hoursRound   = Math.floor(hours);
+        var minutes   = date / 1000 /60 - (24 * 60 * daysRound) - (60 * hoursRound);
+
+        // 超时
+        if (minutes <= 30) {
+            $('*[name=assess_timeout]').val('否');
+        } else {
+            $('*[name=assess_timeout]').val('是');
+        }
+
+        // 车场审核位置不同则考核
+        if (car_location == assess_car_location) {
+            $('*[name=assess_location]').val('否');
+        } else {
+            $('*[name=assess_location]').val('是');
+        }
+
+        getUpdateCarStateApi('正常');
+
+    }
+
+
+    function getUpdateCarStateApi(carstate) {
+        // 替换原提交方法,处理后再提交 check(0)
+        $("#check_btn").removeAttr('onclick');
+
+        $("#check_btn").click(function () {
+            var carname = $("*[name='input_carname']").val();
+            if (carname == null) {
+                carname = $("*[name='carname_success']").val();
+            }
+            var data = "carname="+carname+"&carstate="+carstate;
+            js.ajax(geturlact('updateCarState'), data, function (res) {
+                console.log(res);
+                res = JSON.parse(res);
+                if (res.success) {
+                    check(0);
+                } else {
+                    $('#msgview').text(res.msg);
+                }
+            }, 'get');
+        });
+    }
+
 
 }

+ 5 - 5
webmain/flow/input/tpl_input_lum.html

@@ -155,7 +155,7 @@ input,textarea,select,*,td, button{font-size:16px}
 </head>
 
 <body class="mbody">
-<?php 
+<?php
 if($showheader==1)echo '<div id="header_title" style="padding-top:'.$cenghei.'px" class="header"><span onclick="js.back()" class="header-back"></span>'.$da['title'].'</div><div style="height:'.($cenghei+50).'px;overflow:hidden"></div>';
 ?>
 
@@ -163,7 +163,7 @@ if($showheader==1)echo '<div id="header_title" style="padding-top:'.$cenghei.'px
 	<div class="status"></div>
 	<form name="myform" autocomplete="off">
 		<input name="id" type="hidden" value="<?=$da['mid']?>">
-		<?php 
+		<?php
 		for($i=0;$i<$da['zbshu'];$i++)echo '<input value="0" type="hidden" name="sub_totals'.$i.'">';
 		?>
 		<div style="padding-top:10px">
@@ -226,8 +226,8 @@ if($showheader==1)echo '<div id="header_title" style="padding-top:'.$cenghei.'px
 				echo $stsp;
 			}
 		}
-		
-		
+
+
 		//是否抄送
 		$iscs = (int)$da['moders']['iscs'];
 		if($iscs>0){
@@ -260,7 +260,7 @@ if($showheader==1)echo '<div id="header_title" style="padding-top:'.$cenghei.'px
 firstrs=<?=json_encode($firstrs)?>;
 </script>
 <script type="text/javascript" src="<?=$da['p']?>/flow/input/inputjs/mode_<?=$da['moders']['num']?>.js?<?=time()?>"></script>
-<?php 
+<?php
 if($otherfile)include_once($otherfile);
 if($da['showtype']=='view')echo '<script src="webmain/main/flowview/flowview_input.js?'.time().'"></script>';
 ?>

+ 2 - 1
webmain/flow/page/input_rjz_car_apply.html

@@ -5,7 +5,8 @@
             <td width="35%" class="ys2">{car_type}</td>
             <td height="34" width="15%" align="right" class="ys1">剩余车辆</td>
             <td width="35%" class="ys2">
-                <input class="inputs" style="border:none;background:none;font-weight: 600;color: red;" name="surplus" readonly="">
+<!--                <input class="inputs" style="border:none;background:none;font-weight: 600;color: red;" name="surplus" readonly="">-->
+                {free_car_con}
             </td>
         </tr>
         <tr>

+ 12 - 2
webmain/model/flow/flow.php

@@ -670,7 +670,7 @@ class flowModel extends Model
 					unset($fields['base_name']);
 					unset($fields['base_deptname']);
 				}
-				$contvimr 	.= '<div><table width="100%">';
+				$contvimr 	.= '<div><table width="100%" id="mobile_info_table">';
 				foreach($fields as $f=>$n){
 					$vs = arrvalue($data, $f);
 					if(!isempt($vs)){
@@ -678,7 +678,17 @@ class flowModel extends Model
 						if(substr($f,0,7)=='subdata'){
 							$contvimr .= '<tr><td colspan="3"><div style="padding:5px" align="left"><div><b>'.$n.'</b></div>'.$vs.'</div></td></tr>';
 						}else{
-							$contvimr .= '<tr><td style="vertical-align:text-top;"><div align="left" style="color:#000;padding:6px 0px 3px;font-size:16px;font-weight:bold;">'.str_replace(' ','<br>',$n).'</div><div style="padding:8px 10px 8px 10px;color:#3A3A3C;font-size:15px;width:94%;min-height:15px;border:1px solid #dcdcdc;border-radius:5px;" align="left">'.$vs.'</div></td><td></td></tr>';
+							$contvimr .= '<tr><td style="vertical-align:text-top;">';
+                            $contvimr .= '<div align="left" style="color:#000;padding:6px 0px 3px;font-size:16px;font-weight:bold;">';
+                            $contvimr .= str_replace(' ','<br>',$n); // 标题
+                            $contvimr .= '</div>';
+                            $contvimr .= '<div style="padding:8px 10px 8px 10px;color:#3A3A3C;font-size:15px;width:94%;min-height:15px;border:1px solid #dcdcdc;border-radius:5px;" align="left">';
+                            if ($f == 'base_status' || fnmatch("course[0-9]*_all",$f)) {
+                                $contvimr .= $vs;
+                            } else {
+                                $contvimr .= '<input class="inputs" style="border:none;background:none;" name="input_'.$f.'" value="'.$vs.'" readonly="">';
+                            }
+                            $contvimr .= '</div></td><td></td></tr>';
 						}
 					}
 				}

+ 1 - 1
webmain/model/inputModel.php

@@ -11,7 +11,7 @@ class inputClassModel extends Model
 	{
 		if($iszb<=0)$iszb=1;
 		if($hang<=0)$hang=1;
-		
+
 		$rows 	= $this->getall("`mid`='$modeid' and `iszb`=$iszb and `islu`=1",'`isbt`,`fields`,`fieldstype`,`name`','`sort`');
 		if(!$rows)return '';
 		$xu	 = $iszb-1;

+ 1 - 1
webmain/task/mode/tpl_mode_x.html

@@ -160,7 +160,7 @@ if($da['arr']['isplview']=='1'){
 		?>
 		<tr height="40">
 			<td class="tdys1"><div align="right" style="color:#555555">当前处理</div></td>
-			<td class="tdys1"><div align="left"><?=$flowinfor['nowcourse']['name']?>(<?=$flowinfor['nowcourse']['nowcheckname']?>)</div></td>
+			<td class="tdys1"><div align="left" id = 'input_step'><?=$flowinfor['nowcourse']['name']?>(<?=$flowinfor['nowcourse']['nowcheckname']?>)</div></td>
 		</tr>
 		
 		<tr height="40">