1
0

modeModel.php 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. <?php
  2. class modeClassModel extends Model
  3. {
  4. public function initModel()
  5. {
  6. $this->settable('flow_set');
  7. }
  8. public function getmodearr($whe='')
  9. {
  10. $arr = $this->getall('status=1 '.$whe.'','`id`,`num`,`name`,`table`,`type`,`isflow`','sort');
  11. $typea = array();
  12. foreach($arr as $k=>$rs){
  13. $arr[$k]['name'] = ''.$rs['id'].'.'.$rs['name'].'('.$rs['num'].')';
  14. $typea[$rs['type']][] = $arr[$k];
  15. }
  16. $arr = array();
  17. foreach($typea as $k1=>$srow){
  18. foreach($srow as $k2=>$rs2)$arr[] = $rs2;
  19. }
  20. return $arr;
  21. }
  22. //判断模块是否开启存在
  23. public function iscun($num)
  24. {
  25. $to = $this->rows("`num`='$num' and `status`=1");
  26. return $to==1;
  27. }
  28. public function getmoderows($uid, $sww='')
  29. {
  30. $where = m('admin')->getjoinstr('receid', $uid);
  31. $arr = $this->getall("`status`=1 and `type`<>'系统' $sww $where",'`id`,`num`,`name`,`table`,`type`,`isflow`,`isscl`','`sort`');
  32. return $arr;
  33. }
  34. public function getmodemyarr($uid=0, $whe='')
  35. {
  36. $where = '';
  37. if($whe!='')$where = $whe;
  38. if($uid>0)$where = m('admin')->getjoinstr('receid', $uid);
  39. $arr = $this->getall('status=1 and isflow>0 '.$where.'','`id`,`name`,`type`','sort');
  40. return $arr;
  41. }
  42. //生成列表页面
  43. public function createlistpage($modeid, $lxss=0, $glx=0, $inrs=null)
  44. {
  45. if(is_array($modeid)){
  46. $mors = $modeid;
  47. }else{
  48. $mors = m('flow_set')->getone($modeid,'`id`,`table`,`names`,`num`,`name`,`isflow`,`lbztxs`');
  49. }
  50. $num = $mors['num'];
  51. $path = ''.P.'/flow/page/rock_page_'.$num.'.php';
  52. //分单位自己生成
  53. if($glx==0 && getconfig('platdwnum') && COMPANYNUM){
  54. $dbbase = str_replace('_company_'.COMPANYNUM.'','', DB_BASE);
  55. $ones = $this->db->getone(''.$dbbase.'.`[Q]flow_set`', "`num`='$num'");
  56. if($ones)return 'ok';
  57. }
  58. //当是一键生成时,不存在就不要生成了
  59. if($lxss==1 && !file_exists($path))return 'none';
  60. $flow = m('flow')->initflow($num);
  61. $chufarr= array();
  62. if(method_exists($flow, 'flowxiangfields'))$chufarr = $flow->flowxiangfields($chufarr);
  63. $table = $mors['table'];
  64. $name = $mors['name'];
  65. $modeid = (int)$mors['id'];
  66. $isflow = (int)$mors['isflow'];
  67. $lbztxs = $mors['lbztxs'];
  68. $showzt = false;
  69. $farr[] = array('name'=>arrvalue($chufarr, 'base_name', '申请人'),'fields'=>'base_name');
  70. $farr[] = array('name'=>arrvalue($chufarr, 'base_deptname', '申请人部门'),'fields'=>'base_deptname');
  71. $farr[] = array('name'=>arrvalue($chufarr, 'base_sericnum', '单号'),'fields'=>'sericnum');
  72. $farrs = m('flow_element')->getall("`mid`='$modeid'",'`fields`,`name`,`fieldstype`,`ispx`,`isalign`,`iszb`,`islb`,`issou`,`data`','`iszb`,`sort`');
  73. $inpub = c('input');
  74. $zbarr = array();
  75. $zbnamea = explode(',', $mors['names']);
  76. foreach($farrs as $k=>$rs){
  77. if($glx==1 && $rs['issou']=='1' && ($rs['fieldstype']=='select' || $rs['fieldstype']=='rockcombo')){
  78. $rs['store'] =$inpub->getdatastore($rs['fieldstype'],$inrs,$rs['data']);
  79. }
  80. if($rs['iszb']=='0'){
  81. $farr[] = $rs; //主表
  82. if($rs['fields']=='status')$showzt=true;
  83. }else{
  84. if($rs['issou']=='1'){
  85. $xus = floatval($rs['iszb'])-1;
  86. $zbn = arrvalue($zbnamea, $xus);
  87. if($zbn)$rs['name'] = ''.$zbn.'.'.$rs['name'].'';
  88. $rs['fields'] = 'zb'.$xus.'_'.$rs['fields'].'';
  89. $zbarr[] = $rs;
  90. }
  91. }
  92. }
  93. $jgpstr = '<!--SCRIPTend-->';
  94. $hstart = '<!--HTMLstart-->';
  95. $hendts = '<!--HTMLend-->';
  96. $oldcont = @file_get_contents($path);
  97. $autoquye = $this->rock->getcai($oldcont,'//[自定义区域start]','//[自定义区域end]');
  98. //$isdaoru = m('flow_element')->rows("`mid`='$modeid' and `isdr`=1");
  99. $drstrbtn = '';
  100. //if($isdaoru>0){
  101. $drstrbtn = "<span style=\"display:none\" id=\"daoruspan_{rand}\"><button class=\"btn btn-default\" click=\"daoru,1\" type=\"button\">导入</button>&nbsp;&nbsp;&nbsp;</span>";
  102. //}
  103. //读取流程模块的条件
  104. $whtml = '<div id="changatype{rand}" class="btn-group"></div>';
  105. $zthtml = '';
  106. if($isflow>0)$showzt = true;
  107. if($lbztxs==1)$showzt = true;
  108. if($lbztxs==2)$showzt = false;
  109. if($showzt){
  110. $ztarr = $flow->getstatusarr();
  111. $zthtml = '<td><select class="form-control" style="width:120px;border-left:0;border-radius:0;" id="selstatus_{rand}"><option value="">-全部状态-</option>';
  112. foreach($ztarr as $zt=>$ztv){
  113. if($isflow==0 && $zt==23)continue;
  114. $zthtml .= '<option style="color:'.arrvalue($ztv, 1).'" value="'.$zt.'">'.$ztv[0].'</option>';
  115. }
  116. $zthtml .= '</select></td>';
  117. $zthtml = str_replace('?','', $zthtml);
  118. }
  119. $fselarr = array();
  120. $bear = $this->db->getrows('[Q]option',"`num` like 'columns_".$num."_%'",'`num`,`value`');
  121. foreach($bear as $k2=>$rs2)$fselarr[$rs2['num']]=$rs2['value'];
  122. $placeholder= '关键字';
  123. if($isflow>0)$placeholder= '关键字/申请人/单号';
  124. if($glx==1){
  125. return array(
  126. 'isflow' => $isflow,
  127. 'fieldsarr' => $farr,
  128. 'fieldzarr' => $zbarr,
  129. 'fieldsselarr' => $fselarr,
  130. 'chufarr' => $chufarr,
  131. 'modename' => $name,
  132. 'modenames' => $this->rock->repempt($mors['names']),
  133. );
  134. }
  135. $html= "".$hstart."
  136. <div>
  137. <table width=\"100%\">
  138. <tr>
  139. <td style=\"padding-right:10px;\" id=\"tdleft_{rand}\" nowrap><button id=\"addbtn_{rand}\" class=\"btn btn-primary\" click=\"clickwin,0\" disabled type=\"button\"><i class=\"icon-plus\"></i> 新增</button></td>
  140. <td><select class=\"form-control\" style=\"width:110px;border-top-right-radius:0;border-bottom-right-radius:0;padding:0 2px\" id=\"fields_{rand}\"></select></td>
  141. <td><select class=\"form-control\" style=\"width:60px;border-radius:0px;border-left:0;padding:0 2px\" id=\"like_{rand}\"><option value=\"0\">包含</option><option value=\"1\">等于</option><option value=\"2\">大于等于</option><option value=\"3\">小于等于</option><option value=\"4\">不包含</option></select></td>
  142. <td><select class=\"form-control\" style=\"width:130px;border-radius:0;border-left:0;display:none;padding:0 5px\" id=\"selkey_{rand}\"><option value=\"\">-请选择-</option></select><input class=\"form-control\" style=\"width:130px;border-radius:0;border-left:0;padding:0 5px\" id=\"keygj_{rand}\" placeholder=\"关键词\"><input class=\"form-control\" style=\"width:130px;border-radius:0;border-left:0;padding:0 5px;display:none;\" id=\"key_{rand}\" placeholder=\"".$placeholder."\">
  143. </td>
  144. $zthtml
  145. <td>
  146. <div style=\"white-space:nowrap\">
  147. <button style=\"border-right:0;border-radius:0;border-left:0\" class=\"btn btn-default\" click=\"searchbtn\" type=\"button\">搜索</button><button class=\"btn btn-default\" id=\"downbtn_{rand}\" type=\"button\" style=\"padding-left:8px;padding-right:8px;border-top-left-radius:0;border-bottom-left-radius:0\"><i class=\"icon-angle-down\"></i></button>
  148. </div>
  149. </td>
  150. <td width=\"90%\" style=\"padding-left:10px\">$whtml</td>
  151. <td align=\"right\" id=\"tdright_{rand}\" nowrap>
  152. ".$drstrbtn."<button class=\"btn btn-default\" style=\"display:none\" id=\"daobtn_{rand}\" disabled click=\"daochu\" type=\"button\">导出 <i class=\"icon-angle-down\"></i></button>
  153. </td>
  154. </tr>
  155. </table>
  156. </div>
  157. <div class=\"blank10\"></div>
  158. <div id=\"view".$num."_{rand}\"></div>
  159. ".$hendts."";
  160. $str = "<?php
  161. /**
  162. * 模块:".$num.".".$name."
  163. * 说明:自定义区域内可写你想要的代码
  164. * 来源:流程模块→表单元素管理→[模块.".$name."]→生成列表页
  165. */
  166. defined('HOST') or die ('not access');
  167. ?>
  168. <script>
  169. $(document).ready(function(){
  170. {params}
  171. var modenum = '".$num."',modename='".$name."',isflow=".$isflow.",modeid='".$modeid."',atype = params.atype,pnum=params.pnum,modenames='".$mors['names']."',listname='".$this->rock->jm->base64encode($table)."';
  172. if(!atype)atype='';if(!pnum)pnum='';
  173. var fieldsarr = [],fieldsselarr= [],chufarr= ".json_encode($chufarr).";
  174. <?php
  175. include_once('webmain/flow/page/rock_page.php');
  176. ?>
  177. //[自定义区域start]
  178. $autoquye
  179. //[自定义区域end]
  180. c.initpagebefore();
  181. js.initbtn(c);
  182. var a = $('#view'+modenum+'_{rand}').bootstable(bootparams);
  183. c.init();
  184. });
  185. </script>
  186. ".$jgpstr."";
  187. $bstrs = '<!--HTML-->';
  188. if(!isempt($oldcont) && contain($oldcont, $jgpstr) && contain($oldcont, $bstrs)){
  189. $strarr = explode($jgpstr, $oldcont);
  190. $nstr = $strarr[1];
  191. $htmlqy = $this->rock->getcai($nstr, $hstart, $hendts);
  192. $rstr = "".$hstart."
  193. ".$htmlqy."
  194. ".$hendts."";
  195. $nstr = str_replace($rstr, '', $nstr);
  196. $nstr = str_replace($bstrs, $html.$bstrs, $nstr);
  197. $str .= "\n".$nstr;
  198. }else{
  199. $str.= "\n".$html;
  200. }
  201. $bo = $this->rock->createtxt($path, $str);
  202. if(!$bo)$path='';
  203. return $path;
  204. }
  205. /**
  206. * 统计
  207. */
  208. public function flowtotal($modeid, $fields, $type)
  209. {
  210. }
  211. }
粤ICP备19079148号