1
0

rock_flow_courseedit.php 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538
  1. <?php if(!defined('HOST'))die('not access');?>
  2. <script >
  3. $(document).ready(function(){
  4. {params};
  5. var id = params.id;
  6. if(!id)id = 0;var setid=params.setid,statusstr='';
  7. var h = $.bootsform({
  8. window:false,rand:'{rand}',tablename:'flow_course',
  9. url:publicsave('{mode}','{dir}'),beforesaveaction:'coursesavebefore',
  10. params:{otherfields:'optdt={now}'},
  11. submitfields:'setid,name,num,checktype,checktypeid,checktypename,checkfields,sort,where,whereid,explain,status,courseact,checkshu,recename,receid,mid,iszf,isqm,nid,coursetype,zshtime,zshstate,zbrangeame,zbrangeid,smlx,wjlx,isxgfj,cslx,csfwname,csfwid',
  12. requiredfields:'name',
  13. success:function(){
  14. closenowtabs();
  15. try{guanflowcourselist.reload();}catch(e){}
  16. },
  17. load:function(a){
  18. js.setselectdata(h.form.whereid,a.wherelist,'id');
  19. statusstr=a.statusstr;
  20. },
  21. loadafter:function(a){
  22. c.changetype(0);
  23. if(a.data){
  24. h.form.where.value=jm.base64decode(a.data.where);
  25. if(a.data.iszf>0)$('#zbdiv_{rand}').show();
  26. if(a.data.cslx>0)$('#csdiv_{rand}').show();
  27. }
  28. },
  29. submitcheck:function(d){
  30. if(d.checktype=='user'&&d.checktypeid=='')return '请选择人员';
  31. if(d.checktype=='rank'&&d.checktypename=='')return '请输入职位';
  32. if(d.checktype=='cname'&&d.checktypeid=='')return '请选择审核人员组';
  33. if(d.checktype=='field'&&d.checktypeid=='')return '请选择主表元素';
  34. if(d.cslx=='3'&&d.csfwid=='')return '请选择抄送人员';
  35. return {
  36. where:jm.base64encode(d.where)
  37. };
  38. }
  39. });
  40. h.forminit();
  41. h.load(js.getajaxurl('loaddatacourse','{mode}','{dir}',{id:id,setid:setid}));
  42. var c = {
  43. getdist:function(o1, lx){
  44. var val = h.form.checktype.value;
  45. if(val=='rank'){
  46. $.selectdata({
  47. title:'选择职位',
  48. url:js.getajaxurl('getrank','admin','system'),
  49. checked:false,
  50. nameobj:h.form.checktypename
  51. });
  52. return;
  53. }
  54. if(val=='cname'){
  55. $.selectdata({
  56. title:'选审核人员组',
  57. url:js.getajaxurl('getcname','{mode}','{dir}'),
  58. checked:false,
  59. nameobj:h.form.checktypename,
  60. idobj:h.form.checktypeid,
  61. });
  62. return;
  63. }
  64. if(val=='field'){
  65. $.selectdata({
  66. title:'选择主表元素',
  67. url:js.getajaxurl('getfields','{mode}','{dir}',{'setid':setid}),
  68. checked:true,
  69. nameobj:h.form.checktypename,
  70. idobj:h.form.checktypeid,
  71. });
  72. return;
  73. }
  74. if(val=='change'){
  75. var cans = {
  76. nameobj:h.form.checktypename,
  77. idobj:h.form.checktypeid,
  78. value:h.form.checktypeid.value,
  79. type:'deptusercheck',
  80. title:'选择指定人范围'
  81. };
  82. js.getuser(cans);
  83. return;
  84. }
  85. var cans = {
  86. nameobj:h.form.checktypename,
  87. idobj:h.form.checktypeid,
  88. value:h.form.checktypeid.value,
  89. type:'usercheck',
  90. title:'选择人员'
  91. };
  92. js.getuser(cans);
  93. },
  94. clears:function(){
  95. h.form.checktypename.value='';
  96. h.form.checktypeid.value='';
  97. },
  98. changetype:function(lx){
  99. var v=h.form.checktype.value;
  100. $('#checktext_{rand}').html('');
  101. $('#checkname_{rand}').hide();
  102. if(lx==1){
  103. h.form.checktypename.value='';
  104. h.form.checktypeid.value='';
  105. }
  106. if(v=='rank'){
  107. $('#checktext_{rand}').html('请输入职位:');
  108. $('#checkname_{rand}').show();
  109. }
  110. if(v=='user'){
  111. $('#checktext_{rand}').html('请选择人员:');
  112. $('#checkname_{rand}').show();
  113. }
  114. if(v=='cname'){
  115. $('#checktext_{rand}').html('审核人员组:');
  116. $('#checkname_{rand}').show();
  117. }
  118. if(v=='field'){
  119. $('#checktext_{rand}').html('选择主表上元素:');
  120. $('#checkname_{rand}').show();
  121. }
  122. if(v=='change'){
  123. $('#checktext_{rand}').html('指定人范围:');
  124. $('#checkname_{rand}').show();
  125. }
  126. },
  127. reloadhweil:function(){
  128. h.form.whereid.length = 1;
  129. h.load(js.getajaxurl('loaddatacourse','{mode}','{dir}',{id:id,setid:setid}));
  130. },
  131. getdists:function(o1, lx){
  132. var cans = {
  133. nameobj:h.form.recename,
  134. idobj:h.form.receid,
  135. type:'deptusercheck',
  136. title:'选择适用对象'
  137. };
  138. js.getuser(cans);
  139. },
  140. getzbrangeame:function(o1, lx){
  141. var cans = {
  142. nameobj:h.form.zbrangeame,
  143. idobj:h.form.zbrangeid,
  144. type:'deptusercheck',
  145. title:'选择转办范围'
  146. };
  147. if(lx==2){
  148. cans.nameobj = h.form.csfwname;
  149. cans.idobj = h.form.csfwid;
  150. cans.title = '选择抄送范围';
  151. }
  152. js.getuser(cans);
  153. },
  154. getzbraben:function(o1,lx){
  155. if(lx==1){
  156. h.form.zbrangeame.value='本部门';
  157. h.form.zbrangeid.value='dept';
  158. }
  159. if(lx==2){
  160. h.form.csfwname.value='本部门';
  161. h.form.csfwid.value='dept';
  162. }
  163. },
  164. getzbrabens:function(o1,lx){
  165. if(lx==1){
  166. h.form.zbrangeame.value='本部门(含下级部门)';
  167. h.form.zbrangeid.value='deptall';
  168. }
  169. if(lx==2){
  170. h.form.csfwname.value='本部门(含下级部门)';
  171. h.form.csfwid.value='deptall';
  172. }
  173. },
  174. getzbraremoves:function(o1,lx){
  175. if(lx==1){
  176. h.form.zbrangeame.value='';
  177. h.form.zbrangeid.value='';
  178. }
  179. if(lx==2){
  180. h.form.csfwname.value='';
  181. h.form.csfwid.value='';
  182. }
  183. },
  184. csxuanze:function(){
  185. var s1 = h.form.csfwname.value,s2=h.form.csfwid.value;
  186. if(s1){
  187. s1+=',审批人直属上级';
  188. s2+=',super';
  189. }else{
  190. s1='审批人直属上级';
  191. s2='super';
  192. }
  193. h.form.csfwname.value=s1;
  194. h.form.csfwid.value=s2;
  195. },
  196. allqt:function(o1,lx){
  197. h.form.recename.value='全体人员';
  198. h.form.receid.value='all';
  199. },
  200. removes:function(){
  201. h.form.recename.value='';
  202. h.form.receid.value='';
  203. },
  204. setstatus:function(){
  205. var val = h.form.courseact.value;
  206. var sha = [],vala;
  207. if(val)sha = val.split(',');
  208. var str = '<table width="100%"><tr><td align="center" height="30" nowrap>动作值</td><td>动作名</td><td>动作颜色</td><td>处理后状态</td></tr>';
  209. if(isempt(statusstr))statusstr='待处理,已完成,不通过';
  210. var ztarr = statusstr.replace(/\?/g,'').split(',');
  211. for(var i=0;i<=6;i++){
  212. var na='',col='',naa,sel='',ove='';
  213. if(sha[i]){
  214. naa = sha[i].split('|');
  215. na = naa[0];
  216. if(naa[1])col=naa[1];
  217. if(naa[2])ove=naa[2];
  218. }
  219. str+='<tr><td width="20%" align="center">'+(i+1)+'</td><td width="25%"><input maxlength="10" value="'+na+'" id="abc_xtname'+i+'" style="color:'+col+'" class="form-control"></td><td width="25%"><input class="form-control" maxlength="7" style="color:'+col+'" value="'+col+'" id="abc_xtcol'+i+'"></td><td width="30%">';
  220. str+='<select class="form-control" id="abc_xscol'+i+'" value="'+col+'">';
  221. str+='<option value=""></option>';
  222. for(var j=0;j<ztarr.length;j++){
  223. sel=(ove!='' && ove==j)?'selected':'';
  224. str+='<option '+sel+' value="'+j+'">'+ztarr[j]+'</option>';
  225. }
  226. str+='</select></td></tr>';
  227. }
  228. str+='</table>';
  229. js.tanbody('sttts','['+h.form.name.value+']的状态设置',400,300,{
  230. html:'<div style="height:300px;overflow:auto;padding:5px">'+str+'</div>',
  231. btn:[{text:'确定'}]
  232. });
  233. $('#sttts_btn0').click(function(){
  234. c.setstatusok();
  235. });
  236. },
  237. setstatusok:function(){
  238. var str = '';
  239. for(var i=0;i<=6;i++){
  240. var na=get('abc_xtname'+i+'').value,col=get('abc_xtcol'+i+'').value,zts=get('abc_xscol'+i+'').value;
  241. if(!na)break;
  242. str+=','+na+'';
  243. if(col){
  244. str+='|'+col+'';
  245. if(zts)str+='|'+zts+'';
  246. }else{
  247. if(zts)str+='||'+zts+'';
  248. }
  249. }
  250. if(str!='')str=str.substr(1);
  251. h.form.courseact.value=str;
  252. js.tanclose('sttts');
  253. },
  254. setwhere:function(){
  255. js.setwhere(params.setid,'backsheowe{rand}');
  256. }
  257. };
  258. js.initbtn(c);
  259. if(id==0){
  260. h.form.setid.value=setid;
  261. h.form.mid.value=params.mid;
  262. }
  263. $(h.form.checktype).change(function(){
  264. c.changetype(1);
  265. });
  266. $(h.form.changezbsseas).change(function(){
  267. var o1= this.options[this.selectedIndex];
  268. h.form.zbrangeame.value=o1.text;
  269. h.form.zbrangeid.value=this.value;
  270. });
  271. $(h.form.changezbsseas1).change(function(){
  272. var o1= this.options[this.selectedIndex];
  273. h.form.csfwname.value=o1.text;
  274. h.form.csfwid.value=this.value;
  275. });
  276. $(h.form.iszf).change(function(){
  277. if(this.value>0){
  278. $('#zbdiv_{rand}').show();
  279. }else{
  280. $('#zbdiv_{rand}').hide();
  281. c.getzbraremoves(false, 1);
  282. }
  283. });
  284. $(h.form.cslx).change(function(){
  285. if(this.value>0){
  286. $('#csdiv_{rand}').show();
  287. }else{
  288. $('#csdiv_{rand}').hide();
  289. c.getzbraremoves(false,2);
  290. }
  291. });
  292. //替换的返回
  293. backsheowe{rand}=function(s1,s2){
  294. h.setValue('where',s1);
  295. h.setValue('explain',s2);
  296. }
  297. });
  298. </script>
  299. <div align="center">
  300. <div style="padding:10px;width:700px">
  301. <form name="form_{rand}">
  302. <input name="id" value="0" type="hidden" />
  303. <input name="setid" value="0" type="hidden" />
  304. <table cellspacing="0" border="0" width="100%" align="center" cellpadding="0">
  305. <tr>
  306. <td align="right" width="15%"><font color=red>*</font> 步骤名称:</td>
  307. <td class="tdinput" width="35%"><input name="name" onblur="this.value=strreplace(this.value)" class="form-control"></td>
  308. <td align="right" width="15%">编号:</td>
  309. <td class="tdinput" width="35%"><input onblur="this.value=strreplace(this.value)" name="num" class="form-control"></td>
  310. </tr>
  311. <tr>
  312. <td align="right" nowrap >步骤适用对象:</td>
  313. <td class="tdinput" colspan="3">
  314. <div style="width:100%" class="input-group">
  315. <input readonly class="form-control" placeholder="不选就适用全体人员" name="recename" >
  316. <input type="hidden" name="receid" >
  317. <span class="input-group-btn">
  318. <button class="btn btn-default" click="removes" type="button"><i class="icon-remove"></i></button>
  319. <button class="btn btn-default" click="getdists,1" type="button"><i class="icon-search"></i></button>
  320. </span>
  321. </div>
  322. </td>
  323. </tr>
  324. <tr>
  325. <td align="right" nowrap ><a href="<?=URLY?>view_checklx.html" target="_blank">?审核人员类型</a>:</td>
  326. <td class="tdinput"><select class="form-control" name="checktype"><option value="">-类型-</option><option value="super">直属上级</option><option value="optsuper">上次处理的直属上级</option><option value="superall">直属上级逐级审批</option><option value="rank">职位</option><option value="user">指定人员</option><option value="dept">部门负责人</option><option value="auto">自定义(写代码上)</option><option value="apply">申请人</option><option value="opt">操作人</option><option value="change">由上步指定</option><option value="cname">审核人员组</option><option value="field">主表上元素</option></select></td>
  327. <td align="right" id="checktext_{rand}" nowrap></td>
  328. <td class="tdinput" id="checkname_{rand}" style="display:none">
  329. <div class="input-group" style="width:100%">
  330. <input class="form-control" name="checktypename" >
  331. <input type="hidden" name="checktypeid" >
  332. <span class="input-group-btn">
  333. <button class="btn btn-default" click="clears" type="button">×</button>
  334. <button class="btn btn-default" click="getdist,1" type="button"><i class="icon-search"></i></button>
  335. </span>
  336. </div>
  337. </td>
  338. </tr>
  339. <tr>
  340. <td align="right" >手写签名设置:</td>
  341. <td class="tdinput"><select class="form-control" name="isqm"><option value="0">不需要手写签名</option><option value="1">需要手写签名</option><option value="2">通过才需要手写签名</option><option value="3">不通过才需要手写签名</option></select></td>
  342. <td align="right" >上级步骤ID:</td>
  343. <td class="tdinput">
  344. <table>
  345. <tr>
  346. <td><input name="mid" class="form-control" value="0" type="number" /></td>
  347. <td nowrap>&nbsp;下级步骤ID:</td>
  348. <td><input name="nid" style="width:70px" class="form-control" value="0" type="number" /></td>
  349. </tr>
  350. </table>
  351. </td>
  352. </tr>
  353. <tr>
  354. <td align="right" >审核条件:</td>
  355. <td class="tdinput"><select class="form-control" name="whereid"><option value="0">无条件</option></select></td>
  356. <td colspan="2"><font color=#888888>在【流程模块条件】上添加,满足此条件才需要此步骤</font><a click="reloadhweil" href="javascript:;">[刷新]</a></td>
  357. </tr>
  358. <tr>
  359. <td align="right" >审核条件:<br><a click="setwhere" href="javascript:;">[设置条件]</a>&nbsp;&nbsp;</td>
  360. <td colspan="3" class="tdinput"><textarea placeholder="写SQL条件,条件成立才需要此步骤,标准SQL条件" name="where" style="height:50px" class="form-control"></textarea></td>
  361. </tr>
  362. <tr>
  363. <td align="right" >审核动作:</td>
  364. <td class="tdinput" colspan="3"><input name="courseact" placeholder="默认是:同意,不同意。多个,分开" class="form-control"></td>
  365. </tr>
  366. <tr>
  367. <td align="right" >审核处理表单:</td>
  368. <td class="tdinput" colspan="3"><input name="checkfields" placeholder="写主表字段名,不支持子表字段" class="form-control"><div style="padding-top:0px" class="tishi">需要处理表单元素必须在【表单元素管理】上,输入字段名如:title,dt|stitle,其中格式:必填字段|选填字段</div></td>
  369. </tr>
  370. <tr>
  371. <td align="right" >说明:</td>
  372. <td class="tdinput" colspan="3"><textarea name="explain" style="height:50px" class="form-control"></textarea></td>
  373. </tr>
  374. <tr>
  375. <td align="right" nowrap >审核人数:</td>
  376. <td class="tdinput"><select class="form-control" name="checkshu"><option value="0">需全部审核</option><option value="1" selected>至少一人</option><option value="2">至少2人</option></select></td>
  377. <!--
  378. <td align="right" nowrap >审批方式:</td>
  379. <td class="tdinput"><select class="form-control" name="coursetype"><option value="0">顺序审批</option><option value="1">前置审批(前面有审批后面出现就跳过)</option><option value="2">后置审批(如后面步骤有出现就跳过)</option></select></td>
  380. -->
  381. </tr>
  382. <tr>
  383. <td align="right" ></td>
  384. <td class="tdinput" colspan="3">
  385. 超过<input class="input" type="number" id="shijian_{rand}" onfocus="js.focusval=this.value" value="0" onblur="js.number(this)" min="0" style="width:70px" name="zshtime">分钟自动审核<select name="zshstate"><option value="1">通过</option><option value="2">不通过</option><option value="3">作废单据</option><option value="4">删除单据</option><option value="5">催办提醒</option></select>,0不限制。<select onchange="$('#shijian_{rand}').val(this.value)" name="lbztxs"><option value="0">不限制</option><option value="30">30分钟</option><option value="120">2小时</option><option value="360">6小时</option><option value="1440">1天</option><option value="2880">2天</option><option value="10080">7天</option><option value="21600">15天</option><option value="43200">30天</option></select>
  386. </td>
  387. </tr>
  388. <tr>
  389. <td align="right">排序号:</td>
  390. <td class="tdinput"><input name="sort" value="0" maxlength="3" type="number" onfocus="js.focusval=this.value" onblur="js.number(this)" class="form-control"></td>
  391. </tr>
  392. <tr>
  393. <td align="right">处理时:</td>
  394. <td class="tdinput" colspan="3"><label><input name="isxgfj" value="1" type="checkbox">可直接编辑附件(客户端需要安装<a href="<?=URLY?>view_editword.html" target="_blank">在线编辑文档</a>)</label>&nbsp;</td>
  395. </tr>
  396. <tr>
  397. <td align="right">转办类型:</td>
  398. <td class="tdinput">
  399. <select class="form-control" name="iszf">
  400. <option value="0">不可转办</option>
  401. <option value="1">可转办多人</option>
  402. <option value="2">可转办单人</option>
  403. </select>
  404. </td>
  405. </tr>
  406. <tr id="zbdiv_{rand}" style="display:none">
  407. <td align="right" nowrap >转办的范围:</td>
  408. <td class="tdinput" colspan="3">
  409. <div class="input-group">
  410. <input readonly class="form-control" placeholder="不选就可转办给任何人" name="zbrangeame" >
  411. <input type="hidden" name="zbrangeid" >
  412. <span class="input-group-btn">
  413. <select class="btn btn-default" name="changezbsseas" style="width:150px">
  414. <option value="">-选择-</option>
  415. <option value="dept">本部门</option>
  416. <option value="deptall">本部门(含下级部门)</option>
  417. <option value="down">直属下级</option>
  418. <option value="downall">直属下级(含下级的下级)</option>
  419. </select>
  420. <button class="btn btn-default" click="getzbraremoves,1" type="button"><i class="icon-remove"></i></button>
  421. <button class="btn btn-default" click="getzbrangeame,1" type="button"><i class="icon-search"></i></button>
  422. </span>
  423. </div>
  424. </td>
  425. </tr>
  426. <tr>
  427. <td align="right">处理说明:</td>
  428. <td class="tdinput">
  429. <select class="form-control" name="smlx">
  430. <option value="0">默认不同意才需要填写</option>
  431. <option value="1" >都必须填写</option>
  432. <option value="2" >都可以不写</option>
  433. <option value="3" >不显示说明栏</option>
  434. </select>
  435. </td>
  436. <td align="right">处理文件:</td>
  437. <td class="tdinput">
  438. <select class="form-control" name="wjlx">
  439. <option value="0">默认(可选上传)</option>
  440. <option value="1" >必须上传</option>
  441. <option value="2" >仅同意时需上传</option>
  442. <option value="3" >不显示文件栏</option>
  443. </select>
  444. </td>
  445. </tr>
  446. <tr>
  447. <td align="right">抄送类型:</td>
  448. <td class="tdinput">
  449. <select class="form-control" name="cslx">
  450. <option value="0">不用抄送</option>
  451. <option value="1">可选抄送</option>
  452. <option value="2">同意时必须选抄送</option>
  453. <option value="3">同意时抄送给固定人</option>
  454. </select>
  455. </td>
  456. </tr>
  457. <tr id="csdiv_{rand}" style="display:none">
  458. <td align="right" nowrap >抄送的范围:</td>
  459. <td class="tdinput" colspan="3">
  460. <div class="input-group">
  461. <input readonly class="form-control" placeholder="不选就可抄送给任何人" name="csfwname" >
  462. <input type="hidden" name="csfwid" >
  463. <span class="input-group-btn">
  464. <select class="btn btn-default" name="changezbsseas1" style="width:150px">
  465. <option value="">-选择-</option>
  466. <option value="dept">本部门</option>
  467. <option value="deptall">本部门(含下级部门)</option>
  468. <option value="down">直属下级</option>
  469. <option value="downall">直属下级(含下级的下级)</option>
  470. </select>
  471. <button class="btn btn-default" click="getzbraremoves,2" type="button"><i class="icon-remove"></i></button>
  472. <button class="btn btn-default" click="getzbrangeame,2" type="button"><i class="icon-search"></i></button>
  473. </span>
  474. </div>
  475. <div><a href="javascript:;" click="csxuanze,2">审批人直属上级</a></div>
  476. </td>
  477. </tr>
  478. <tr>
  479. <td align="right" ></td>
  480. <td class="tdinput" colspan="3">
  481. <label><input name="status" value="1" checked type="checkbox"> 启用</label>&nbsp;
  482. </td>
  483. </tr>
  484. <tr>
  485. <td align="right"></td>
  486. <td style="padding:15px 0px" colspan="3" align="left"><button disabled class="btn btn-success" id="save_{rand}" type="button"><i class="icon-save"></i>&nbsp;保存</button>&nbsp; <span id="msgview_{rand}"></span>&nbsp;<a href="<?=URLY?>view_course.html" target="_blank">[看帮助]</a>
  487. </td>
  488. </tr>
  489. </table>
  490. </form>
  491. </div>
  492. </div>
粤ICP备19079148号