tpl_flowview.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title><?=$da['title']?></title>
  5. <link rel="stylesheet" type="text/css" href="webmain/css/webmain.css"/>
  6. <link rel="stylesheet" type="text/css" href="web/res/fontawesome/css/font-awesome.min.css">
  7. <script src="js/jquery.js"></script>
  8. <script src="js/js.js"></script>
  9. <link rel="shortcut icon" href="favicon.ico" />
  10. <script type="text/javascript" src="mode/plugin/jquery-rockmodels.js"></script>
  11. <style>
  12. <?php
  13. $maincolor = getconfig('apptheme','#1389D3');
  14. $maincolora= c('image')->colorTorgb($maincolor);
  15. $maincolors= ''.$maincolora[0].','.$maincolora[1].','.$maincolora[2].'';
  16. echo 'body{--main-color:'.$maincolor.';--main-border:rgba('.$maincolors.',0.2)}';
  17. ?>
  18. .tools{height:40px;padding:0px 10px;overflow:hidden;text-align:center;line-height:40px;cursor:pointer;font-size:14px;float:left}
  19. .tools:hover{background-color:#f1f1f1}
  20. .typedata{margin:8px 10px;padding:8px;border:1px #dddddd solid;font-size:12px;border-radius:5px}
  21. .listdata{padding:10px;border-bottom:1px #eeeeee solid;cursor:pointer}
  22. .listdata:hover,.aactive{ background:#f1f1f1;color:<?=$maincolor?>}
  23. </style>
  24. <script>
  25. maincolor='<?=$maincolor?>';
  26. modenum = '';
  27. modeid = 0;
  28. var ke = {
  29. init:function(){
  30. this.geihes();
  31. $(window).resize(this.geihes);
  32. this.getzidudn();
  33. },
  34. geihes:function(){
  35. var hei = winHb()-2;
  36. $('#leftmain').css('height',''+hei+'px');
  37. $('#centerdiv').css('height',''+(hei-40)+'px');
  38. $('#shuxinglist').css('height',''+(hei-40)+'px');
  39. $('#centerdivs').css('height',''+(hei-110)+'px');
  40. },
  41. addmode:function(){
  42. js.prompt('新增模块','请输入模块名称(模块编号随机生成)', function(jg,txt){
  43. if(jg=='yes' && txt){
  44. ke.addmodes(txt);
  45. }
  46. });
  47. },
  48. addmodes:function(na){
  49. js.loading('模块创建中...');
  50. js.ajax('?d=main&m=flowview&a=createmode',{name:na},function(ret){
  51. if(ret.success){
  52. js.msgok('创建成功');
  53. var ds = ret.data;
  54. $('#modelist').prepend('<div class="listdata" onclick="ke.viewmode(\''+ds.num+'\',\''+ds.id+'\', this)">'+ds.name+'</div>');
  55. }else{
  56. js.msgerror(ret.msg);
  57. }
  58. },'post,json');
  59. },
  60. viewmode:function(bh,sid,o1){
  61. if(this.modevsse)this.modevsse.removeClass('aactive');
  62. this.modevsse = $(o1);
  63. this.modevsse.addClass('aactive');
  64. modenum = bh;
  65. modeid = sid;
  66. this.getzidudn();
  67. },
  68. getzidudn:function(){
  69. if(!modenum)return;
  70. var url = '?a=lum&m=input&d=flow&num='+modenum+'&showtype=view';
  71. showIframe.location.href=url;
  72. },
  73. showshuxing:function(d){
  74. var str = '<form name="myform" autocomplete="off">';
  75. str+='<input type="hidden" name="id" value="'+d.id+'">';
  76. //str+='<input type="hidden" name="isss" value="'+d.isss+'">';
  77. str+='<table width="100%">';
  78. str+='<tr>';
  79. str+='<td align="right" nowrap><font color=red>*</font>名称&nbsp;</td>';
  80. str+='<td><input type="text" value="'+d.name+'" name="name" style="width:100%" class="input"></td>';
  81. str+='</tr>';
  82. str+='<tr><td height="10"></td></tr>';
  83. str+='<tr>';
  84. str+='<td align="right" nowrap><font color=red>*</font>对应字段&nbsp;</td>';
  85. str+='<td><input type="text" value="'+d.fields+'" placeholder="不能数字/中文" name="fields" style="width:100%" class="input"></td>';
  86. str+='</tr>';
  87. if(!d.xiaoshu)d.xiaoshu='0';
  88. str+='<tr><td height="10"></td></tr>';
  89. str+='<tr>';
  90. str+='<td align="right" nowrap><font color=red>*</font>字段类型&nbsp;</td>';
  91. str+='<td><select onchange="ke.changetype()" name="fieldstype" style="width:100%" class="input"></select><div id="div_number" style="display:none">小数点位数:<input type="text" onfocus="js.focusval=this.value" onblur="js.number(this)" min="0" max="6" name="xiaoshu" class="input" style="width:60px" value="'+d.xiaoshu+'"></div></td>';
  92. str+='</tr>';
  93. if(!d.lens)d.lens='';
  94. str+='<tr><td height="10"></td></tr>';
  95. str+='<tr>';
  96. str+='<td align="right" nowrap>长度&nbsp;</td>';
  97. str+='<td><input type="text" onfocus="js.focusval=this.value" onblur="js.number(this)" value="'+d.lens+'" name="lens" style="width:100%" class="input"></td>';
  98. str+='</tr>';
  99. if(!d.dev)d.dev='';
  100. str+='<tr><td height="10"></td></tr>';
  101. str+='<tr>';
  102. str+='<td align="right" nowrap>默认值&nbsp;</td>';
  103. str+='<td><input type="text" value="'+d.dev+'" placeholder="录入时显示的默认值" name="dev" style="width:100%" class="input"></td>';
  104. str+='</tr>';
  105. if(!d.placeholder)d.placeholder='';
  106. str+='<tr><td height="10"></td></tr>';
  107. str+='<tr>';
  108. str+='<td align="right" nowrap>提示内容&nbsp;</td>';
  109. str+='<td><input type="text" value="'+d.placeholder+'" name="placeholder" style="width:100%" class="input"></td>';
  110. str+='</tr>';
  111. str+='<tr><td height="10"></td></tr>';
  112. str+='<tr>';
  113. str+='<td align="right" nowrap>是否必填&nbsp;</td>';
  114. str+='<td><label><input type="checkbox" value="1" name="isbt">录入必须填写</label></td>';
  115. str+='</tr>';
  116. str+='<tr><td height="10"></td></tr>';
  117. str+='<tr>';
  118. str+='<td align="right" nowrap>是否录入&nbsp;</td>';
  119. str+='<td><label><input type="checkbox" value="1" name="islu">在录入页显示</label></td>';
  120. str+='</tr>';
  121. str+='<tr><td height="10"></td></tr>';
  122. str+='<tr>';
  123. str+='<td align="right" nowrap>是否搜索&nbsp;</td>';
  124. str+='<td><label><input type="checkbox" value="1" name="issou">列表页上搜索</label></td>';
  125. str+='</tr>';
  126. if(!d.attr)d.attr='';
  127. str+='<tr><td height="10"></td></tr>';
  128. str+='<tr>';
  129. str+='<td align="right" nowrap>属性&nbsp;</td>';
  130. str+='<td><input type="text" value="'+d.attr+'" placeholder="如果只读填写:readonly" name="attr" style="width:100%" class="input"></td>';
  131. str+='</tr>';
  132. if(!d.data)d.data='';
  133. str+='<tr id="div_data">';
  134. str+='<td align="right" nowrap>数据源&nbsp;</td>';
  135. str+='<td><textarea name="data" style="width:100%;height:100px;margin-top:10px" class="input">'+d.data+'</textarea><a class="blue" href="http://www.rockoa.com/view_element.html" target="_blank">数据源帮助</a></td>';
  136. str+='</tr>';
  137. str+='<tr><td height="10"></td></tr>';
  138. str+='<tr>';
  139. str+='<td align="right" nowrap></td>';
  140. str+='<td><button type="button" onclick="ke.saveshuxing(this)" class="webbtn">'+d.btnname+'保存</button>&nbsp;<span id="msgview">';
  141. if(d.id>0){
  142. str+='<button type="button" onclick="ke.delfields(this,'+d.id+')" class="webbtn webbtn-red">删</button>';
  143. }
  144. str+='</span></td>';
  145. str+='</tr>';
  146. str+='</table></form>';
  147. str='<div style="margin:10px;">'+str+'</div>';
  148. $('#shuxinglist').html(str);
  149. js.setselectdata(form('fieldstype'),this.typedata,'value');
  150. form('fieldstype').value = d.fieldstype;
  151. if(d.isbt==1)form('isbt').checked=true;
  152. if(d.islu==1)form('islu').checked=true;
  153. if(d.issou==1)form('issou').checked=true;
  154. this.changetype();
  155. },
  156. changetype:function(){
  157. var val = form('fieldstype').value;
  158. if(val=='number'){
  159. $('#div_number').show();
  160. }else{
  161. $('#div_number').hide();
  162. }
  163. },
  164. saveshuxing:function(o1){
  165. var da = js.getformdata();
  166. o1.disabled=true;
  167. if(!da.name){js.setmsg('名称不能为空');return;}
  168. if(!da.fields){js.setmsg('对应字段不能为空');return;}
  169. js.setmsg('保存中...');
  170. da.modenum = modenum;
  171. js.ajax('?d=main&m=flowview&a=saveziduan',da,function(ret){
  172. if(ret.success){
  173. js.setmsg('保存成功','green');
  174. ke.getzidudn();
  175. }else{
  176. js.setmsg(ret.msg,'red');
  177. o1.disabled=false;
  178. }
  179. },'post,json');
  180. },
  181. iframeshow:function(){
  182. },
  183. showzdxing:function(fid){
  184. js.loading('加载字段信息...');
  185. js.ajax('?d=main&m=flowview&a=getziduan',{num:modenum,fid:fid},function(ret){
  186. ke.typedata = ret.typedata;
  187. var das = ret.ziduan;
  188. if(das){
  189. das.btnname = '编辑';
  190. ke.showshuxing(das);
  191. js.unloading();
  192. }else{
  193. js.msgerror('读取不到字段信息');
  194. }
  195. },'get,json');
  196. },
  197. addfields:function(){
  198. if(modenum==''){
  199. js.msgerror('请先选择模块');return;
  200. }
  201. js.prompt('新增字段','请输入字段名称', function(jg,txt){
  202. if(jg=='yes' && txt){
  203. ke.addfieldss(txt);
  204. }
  205. });
  206. },
  207. addfieldss:function(jx){
  208. js.loading('加载字段信息...');
  209. js.ajax('?d=main&m=flowview&a=getziduans',{num:modenum,name:jx},function(ret){
  210. ke.typedata = ret.typedata;
  211. var das = ret.ziduan;
  212. das.btnname = '新增';
  213. ke.showshuxing(das);
  214. js.unloading();
  215. },'post,json');
  216. },
  217. lubuju:function(){
  218. if(modenum==''){
  219. js.msgerror('请先选择模块');return;
  220. }
  221. var url='?m=flow&d=main&a=input&setid='+modeid+'&atype=0';
  222. js.open(url,980,530);
  223. }
  224. ,
  225. lubujus:function(){
  226. if(modenum==''){
  227. js.msgerror('请先选择模块');return;
  228. }
  229. var url = js.getajaxurl('@lu','input','flow',{num:modenum});
  230. js.open(url, 800,450);
  231. },
  232. delfields:function(o1,ids){
  233. js.confirm('确定要删除此字段吗?', function(jg){
  234. if(jg=='yes'){
  235. js.ajax('?d=main&m=flowview&a=delziduan',{id:ids},function(ret){
  236. js.msgok('删除成功');
  237. ke.getzidudn();
  238. },'get,json');
  239. }
  240. });
  241. }
  242. }
  243. function initbody(){
  244. ke.init();
  245. }
  246. </script>
  247. </head>
  248. <body style="background:#f5f5f5;padding:0;margin:0;overflow:hidden">
  249. <div align="center">
  250. <div align="left" style="max-width:1200px">
  251. <table width="100%">
  252. <tr valign="top">
  253. <td >
  254. <div id="leftmain" style="width:230px;background-color:white;border:1px #dddddd solid;overflow:auto">
  255. <div style="padding:10px" align="center">
  256. <button type="button" onclick="ke.addmode()" class="webbtn"><i class="icon-plus"></i> 新增模块</button>
  257. </div>
  258. <div id="modelist">
  259. <?php
  260. $type = '';
  261. foreach($modearr as $k=>$rs){
  262. if($type!=$rs['type']){
  263. echo '<div style="line-height:30px;border-bottom:1px #eeeeee solid">&nbsp;<b>'.$rs['type'].'</b></div>';
  264. }
  265. $type = $rs['type'];
  266. echo '<div class="listdata" onclick="ke.viewmode(\''.$rs['num'].'\',\''.$rs['id'].'\', this)">'.$rs['name'].'</div>';
  267. }
  268. ?>
  269. </div>
  270. </div>
  271. </td>
  272. <td width="100%" style="padding:0px 10px">
  273. <div style="border:1px #dddddd solid;">
  274. <div style="height:40px;overflow:hidden;background:#fefefe;border-bottom:0px #f1f1f1 solid">
  275. <div class="tools" onclick="ke.addfields()"><i class="icon-plus"></i>增加字段</div>
  276. <div class="tools" onclick="ke.lubuju()"><i class="icon-laptop"></i>PC端录入布局</div>
  277. <div class="tools" onclick="ke.lubujus()"><i class="icon-desktop"></i>PC录入页</div>
  278. </div>
  279. <div id="centerdiv" style="height:40px;background:#ededed" align="center">
  280. <div style="padding:15px 0px">
  281. <div style="height:40px;line-height:40px;font-size:12px;color:gray">更多完整的设置,请到【流程模块→表单元素管理】下操作</div>
  282. <div id="centerdivs" style="width:350px;overflow:hidden;background:white;border:1px #cccccc solid;border-radius:2px" id="ziduanlist" align="left">
  283. <iframe src="" onload="ke.iframeshow()" name="showIframe" width="100%" height="100%" frameborder="0"></iframe>
  284. </div>
  285. </div>
  286. </div>
  287. </div>
  288. </td>
  289. <td >
  290. <div id="rightmain" style="width:300px;background-color:white;border:1px #dddddd solid">
  291. <div style="height:40px;overflow:hidden;background:#fefefe;border-bottom:1px #f1f1f1 solid;line-height:40px">
  292. &nbsp;字段属性
  293. </div>
  294. <div id="shuxinglist" style="height:120px;overflow:auto"></div>
  295. </div>
  296. </td>
  297. </tr>
  298. </table>
  299. </div>
  300. </div>
  301. </body>
  302. </html>