pobj = new flowClassAction(); $strs= $this->pobj->elemensavefieldsbefore($table, $arr, $id); if($strs)return $strs; $rows = array(); if($arr['zdsm'])$rows['zdsm'] = htmlspecialchars_decode($arr['zdsm']); return array( 'rows' => $rows ); } protected function saveafter($table, $arr, $id, $addbo){ $this->pobj->elemensavefields($table, $arr); } public function iszbdata() { $mkid = (int)$this->get('mkid','0'); $mid = (int)$this->get('mid','0'); $mkrs = array(); $talbe = ''; if($mid>0){ $mkid = m('flow_element')->getmou('mid', $mid); } if($mkid){ $mkrs = m('flow_set')->getone($mkid); $talbe = $mkrs['table']; } $arr[] = array('value'=>'0','name'=>'主表('.$talbe.')字段'); if($mkrs){ $tables = $mkrs['tables']; $names = $mkrs['names']; if(!isempt($tables)){ $tablesa = explode(',', $tables); $namesa = explode(',', $names); foreach($tablesa as $k=>$v)$arr[] = array('value'=>$k+1,'name'=>'第个'.($k+1).'子表('.arrvalue($namesa, $k).'.'.$v.')字段'); } } return $arr; } public function attrdata() { $arr[] = array('value'=>'readonly','name'=>'只读'); $arr[] = array('value'=>'onlyen','name'=>'不能有中文'); $arr[] = array('value'=>'onlycn','name'=>'必须包含中文'); $arr[] = array('value'=>'maxhang','name'=>'布局占整行'); $arr[] = array('value'=>'email','name'=>'邮件格式'); $arr[] = array('value'=>'mobile','name'=>'中文手机号'); $arr[] = array('value'=>'number','name'=>'必须是数字'); $arr[] = array('value'=>'date','name'=>'必须是日期格式如2020-02-02'); return $arr; } public function devdata() { $arr[] = array('value'=>'admin','name'=>'{admin}','subname'=>'当前用户姓名'); $arr[] = array('value'=>'deptname','name'=>'{deptname}','subname'=>'当前用户部门'); $arr[] = array('value'=>'uid','name'=>'{uid}','subname'=>'当前用户ID'); $arr[] = array('value'=>'date','name'=>'{date}','subname'=>'当前日期'); $arr[] = array('value'=>'optdt','name'=>'{optdt}','subname'=>'当前时间'); $arr[] = array('value'=>'ranking','name'=>'{urs.ranking}','subname'=>'当前用户职位'); $arr[] = array('value'=>'urs','name'=>'{urs.mobile}','subname'=>'当前用户其他信息字段,mobile改成需要字段名'); return $arr; } protected function storeafter($table, $rows) { $mkid = (int)$this->post('mkid','0'); $mkrs = false; if($mkid>0)$mkrs = m('flow_set')->getone($mkid); $nrows= $zbarr = $farr = array(); if($rows)foreach($rows as $k=>$rs){ $iszb = $rs['iszb']; $zbarr[$iszb][] = $rs; if($iszb >0){ if(!isset($farr[$iszb]))$farr[$iszb] = $rs; } } if(isset($zbarr[0]))foreach($zbarr[0] as $k=>$rs){ $nrows[] = $rs; $sort = $rs['sort']; $nfarr = array(); if($farr)foreach($farr as $zb=>$rs1){ if($sort>0 && ($sort==$rs1['sort'] || $sort+1 == $rs1['sort'])){ foreach($zbarr[$zb] as $k1=>$rs2){ $nrows[] = $rs2; } }else{ $nfarr[$zb] = $rs1; } } $farr = $nfarr; } if($farr)foreach($farr as $zb=>$rs1){ foreach($zbarr[$zb] as $k1=>$rs2){ $nrows[] = $rs2; } } $rows = $nrows; return array( 'rows' => $rows, 'mkrs' => $mkrs, ); } public function fieldsstore() { $mkid = (int)$this->get('mkid','0'); $iszb = (int)$this->get('iszb','0'); $mkrs = m('flow_set')->getone($mkid); $table = $mkrs['table']; $tables = $mkrs['tables']; if($iszb>0 && !isempt($tables)){ $tablesa = explode(',', $tables); $table = $tablesa[$iszb-1]; } $farrs = array(); $farr = $this->db->gettablefields('[Q]'.$table.''); foreach($farr as $k=>$rs){ $farrs[]= array('value'=>$rs['name'],'name'=>$rs['name'],'subname'=>$rs['explain']); } return $farrs; } public function modewhereAjax() { $modeid = (int)$this->get('modeid','0'); $rows = m('flow_where')->getall("`setid`=".$modeid." AND ifnull(`num`,'')<>''", 'num,name','`sort` asc'); $farr = m('flow_element')->getall("`mid`=".$modeid." and `iszb`=0", 'fields,name','`sort` asc'); return array( 'wheredata'=>$rows, 'fieldsarr'=> $farr ); } }