task-operate.jsp 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%@include file="/context/mytags.jsp"%>
  3. <%@page import="java.util.ResourceBundle"%>
  4. <!DOCTYPE html>
  5. <html>
  6. <head>
  7. <title><t:mutiLang langKey="common.task.operate"/></title>
  8. <%-- <t:base type="jquery,tools,easyui,DatePicker"></t:base> --%>
  9. </head>
  10. <body>
  11. <style type="text/css">
  12. #t_table td label {font-size:15px;}
  13. .blueButton{
  14. display: inline-block;
  15. *display: inline;
  16. padding: 4px 12px;
  17. margin-bottom: 0;
  18. *margin-left: .3em;
  19. font-size: 14px;
  20. line-height: 20px;
  21. text-align: center;
  22. vertical-align: middle;
  23. cursor: pointer;
  24. border: 1px solid #cccccc;
  25. *border: 0;
  26. border-bottom-color: #b3b3b3;
  27. -webkit-border-radius: 4px;
  28. -moz-border-radius: 4px;
  29. border-radius: 4px;
  30. *zoom: 1;
  31. -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  32. -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  33. box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  34. color: #ffffff;
  35. text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  36. background-color: #006dcc;
  37. *background-color: #0044cc;
  38. background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
  39. background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
  40. background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
  41. background-image: -o-linear-gradient(top, #0088cc, #0044cc);
  42. background-image: linear-gradient(to bottom, #0088cc, #0044cc);
  43. background-repeat: repeat-x;
  44. border-color: #0044cc #0044cc #002a80;
  45. border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  46. filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
  47. filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
  48. }
  49. .blueButton:hover,
  50. .blueButton:focus,
  51. .blueButton:active,
  52. .blueButton.active,
  53. .blueButton.disabled,
  54. .blueButton[disabled] {
  55. color: #ffffff;
  56. background-color: #0044cc;
  57. *background-color: #003bb3;
  58. }
  59. .disabledButton{
  60. display: inline-block;
  61. *display: inline;
  62. padding: 4px 12px;
  63. margin-bottom: 0;
  64. *margin-left: .3em;
  65. font-size: 14px;
  66. line-height: 20px;
  67. text-align: center;
  68. vertical-align: middle;
  69. cursor: pointer;
  70. border: 1px solid #cccccc;
  71. *border: 0;
  72. border-bottom-color: #b3b3b3;
  73. -webkit-border-radius: 4px;
  74. -moz-border-radius: 4px;
  75. border-radius: 4px;
  76. *zoom: 1;
  77. -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  78. -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  79. box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  80. color: #ffffff;
  81. text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  82. background-color: #BDBEC0;
  83. *background-color: #BDBEC0;
  84. background-image: -moz-linear-gradient(top, #BDBEC0, #BDBEC0);
  85. background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#BDBEC0), to(#0044cc));
  86. background-image: -webkit-linear-gradient(top, #BDBEC0, #BDBEC0);
  87. background-image: -o-linear-gradient(top, #BDBEC0, #BDBEC0);
  88. background-image: linear-gradient(to bottom, #BDBEC0, #BDBEC0);
  89. background-repeat: repeat-x;
  90. border-color: #BDBEC0 #BDBEC0 #BDBEC0;
  91. border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  92. filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#BDBEC0', endColorstr='#BDBEC0', GradientType=0);
  93. filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
  94. }
  95. </style>
  96. <fieldset style="border: 1px solid #E6E6E6;">
  97. <legend>表单信息</legend>
  98. <div id="panelloadingDiv" class="panel-loading" width="100%">加载中....</div>
  99. <iframe id="taskformiframe" name="taskformiframe" src="taskController.do?goTaskForm&taskId=${taskId }" scrolling="no" frameborder="0" height="1%" width="100%" onload="hiddenloading();iframeresize('taskformiframe');"></iframe>
  100. </fieldset>
  101. <t:formvalid formid="formobj" layout="table" dialog="true" usePlugin="password">
  102. <input name="taskId" id="taskId" type="hidden" value="${taskId}" />
  103. <input name="bormoney" id="bormoney" type="hidden" vartype="B" value="${bormoney}">
  104. <input name="keys" id="keys" type="hidden" />
  105. <input name="values" id="values" type="hidden" />
  106. <input name="types" id="types" type="hidden" />
  107. <input name="nextCodeCount" id="nextCodeCount" type="hidden" value="${nextCodeCount}"/>
  108. <div class="ui-widget-content ui-corner-all" style="padding: 10px; margin: 10px;">
  109. <div style="margin: 15px auto; height: 50px; width: 900px;" id="tabs-project">
  110. <c:if test="${bpmLogListCount-3 > 0}">
  111. <div class="progress"></div>
  112. <div class="progress"></div>
  113. </c:if>
  114. <c:forEach items="${bpmLogList}" var="bpmLg" varStatus="name" >
  115. <c:if test="${name.index < bpmLogNewListCount}">
  116. <div class="progress progress"></div>
  117. <div class="progress progress1">
  118. <div class="detial">
  119. <b>${bpmLg.task_node }</b><br/>
  120. [<span style="color:red;"><t:mutiLang langKey="common.task.time"/>:
  121. <fmt:formatDate value="${bpmLg.op_time }" pattern="MM-dd HH:mm:ss"/></span>]<br/>
  122. [<span><t:mutiLang langKey="common.task.operator"/>:${bpmLg.op_name }]</span>
  123. </div>
  124. </div>
  125. </c:if>
  126. </c:forEach>
  127. <c:if test="${taskName != null }">
  128. <div class='progress progress_cancel'></div>
  129. <div class="progress progress3">
  130. <div class="detial">
  131. <span><b>${taskName}</b></span><br>
  132. <!-- [<span><t:mutiLang langKey="common.task.assignee"/>:</span>]<br> -->
  133. [<span><t:mutiLang langKey="common.task.operator"/>:${task.assignee }]</span>
  134. </div>
  135. </div>
  136. </c:if>
  137. <div class='progress progress_unstart'></div>
  138. <div class='progress progress_unstart'></div>
  139. <div class='progress progress_unstart'></div>
  140. </div>
  141. </div>
  142. <table id="t_table" cellpadding="0" cellspacing="1" class="formtable" style="width: 100%;">
  143. <tr height="35">
  144. <td class="value" style="padding: 0px 5px;">
  145. <label class="Validform_label"><t:mutiLang langKey="common.task.suggestion"/></label>
  146. </td>
  147. </tr>
  148. <c:forEach items="${bpmLogList}" var="bpmLog">
  149. <tr height="35">
  150. <td class="value" style="padding: 0px 5px;border-top:1px dashed #00CCCC; font-size:13px;">
  151. <fmt:formatDate value="${bpmLog.op_time }" pattern="yyyy-MM-dd HH:mm:ss"/>[${bpmLog.op_name }]
  152. </td>
  153. </tr>
  154. <tr height="35">
  155. <td class="value" style="padding: 0px 5px;font-size:13px;">
  156. [<span style="color:blue">${bpmLog.task_node }</span>]${bpmLog.memo }
  157. </td>
  158. </tr>
  159. <c:forEach items="${bpmLog.bpmFiles}" var="bpmFile">
  160. <tr height="35">
  161. <td class="value" style="padding: 0px 5px;">
  162. [<span style="color:blue"><t:mutiLang langKey="common.attachment"/></span>] ${bpmFile.attachmenttitle}
  163. <a href="commonController.do?viewFile&fileid=${bpmFile.id}&subclassname=org.jeecgframework.workflow.pojo.base.TPBpmFile" title="common.document.download"><t:mutiLang langKey="common.document.download"/></a>
  164. <a href="javascript:void(0);"
  165. onclick="openwindow('<t:mutiLang langKey="common.preview"/>','commonController.do?openViewFile&fileid=${bpmFile.id}&subclassname=org.jeecgframework.workflow.pojo.base.TPBpmFile','fList','800','700')"><t:mutiLang langKey="common.preview"/></a>
  166. <!-- <a href="javascript:void(0)" class="jeecgDetail" onclick="del('tFinanceController.do?delFile&id=${bpmFile.id}',this)">删除</a>-->
  167. </td>
  168. </tr>
  169. </c:forEach>
  170. <br/>
  171. </c:forEach>
  172. <br>
  173. <tr height="35" >
  174. <td class="value" style="padding: 0px 5px;">
  175. <label class="Validform_label" style="font-size:14px;">
  176. <t:mutiLang langKey="common.handel.suggestion"/><p></p>
  177. </label>
  178. <textarea name="reason" datatype="*" vartype="S" style="resize: none;" rows="3" cols="105"></textarea>
  179. <span class="Validform_checktip"></span>
  180. </td>
  181. </tr>
  182. <tr>
  183. <td class="value" style="padding: 0px 5px;">
  184. <div class="form jeecgDetail" style="padding: 3px;">
  185. <input type="hidden" id="bpmlogId" name="bpmlogId" />
  186. <br/><t:upload name="fiels" id="file_upload" extend="*.doc;*.docx;*.txt;*.ppt;*.xls;*.xlsx;*.html;*.htm;*.pdf;*.jpg;" buttonText="common.file.add" formData="bpmlogId" uploader="activitiController.do?saveBpmFiles">
  187. </t:upload>
  188. </div>
  189. <div class="form" id="filediv" style="height: 50px"></div>
  190. </td>
  191. </tr>
  192. <tr>
  193. <td class="value">
  194. <input type="radio" name="model" value="1" onchange="changeModel(1);" checked/><t:mutiLang langKey="common.model.one"/>
  195. <input type="radio" name="model" value="2" onchange="changeModel(2);"/><t:mutiLang langKey="common.model.more"/>
  196. <span id="manyModel" style="display:none">
  197. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:red"><t:mutiLang langKey="common.model.more.all"/>:</span>
  198. <c:forEach items="${transitionList}" var="trans">
  199. <input type="checkbox" name="transition" value="${trans.nextnode}" checked disabled>${trans.Transition }
  200. </c:forEach>
  201. </span>
  202. <c:if test="${histListSize > 0 }">
  203. <input type="radio" name="model" value="3" onchange="changeModel(3);"/><t:mutiLang langKey="common.reject"/>
  204. <span id="rejectModel" style="display:none">
  205. <select name="rejectModelNode">
  206. <c:forEach items="${histListNode}" var="histNode">
  207. <option value="${histNode.task_def_key_}" <c:if test="${histNode.task_def_key_==turnbackTaskId }">selected</c:if> >${histNode.name_ }</option>
  208. </c:forEach>
  209. </select>
  210. </span>
  211. </c:if>
  212. </td>
  213. </tr>
  214. <tr>
  215. <td class="value">
  216. <input type="checkbox" name="next_username_checkbox" id="next_username_checkbox" onclick="changeUsernameCheckbox();" />
  217. 指定下一步处理人(指定下一步会签人员)
  218. <input type="checkbox" name="ccusername_checkbox" id="ccusername_checkbox" onclick="changeCCUsernameCheckbox();" />
  219. 是否抄送
  220. </td>
  221. </tr>
  222. <tr id="next_username_checkbox_tr" style="display:none">
  223. <td class="value">
  224. 指定下一步处理人/指定下一步会签人员:
  225. <input name="last" id="last" readonly="readonly" type="text">
  226. <input name="id" type="hidden" value="" id="id">
  227. <t:choose hiddenName="id" hiddenid="id" url="activitiController.do?goEntrust" name="entrusterList" icon="icon-search" title="common.user.list" textname="last" isclear="true"></t:choose><t:mutiLang langKey="common.noselect.default"/>
  228. </td>
  229. </tr>
  230. <tr>
  231. <tr id="ccusername_checkbox_tr" style="display:none">
  232. <td class="value">
  233. 抄送给:
  234. <input name="ccUserRealNames" id="ccUserRealNames" readonly="readonly" type="text">
  235. <input name="ccUserNames" type="hidden" value="" id="ccUserNames">
  236. <t:choose hiddenName="ccUserNames" hiddenid="id" url="activitiController.do?goEntrust" name="entrusterList" icon="icon-search" title="common.user.list" inputTextname="ccUserRealNames" textname="last" isclear="true"></t:choose>
  237. </td>
  238. </tr>
  239. <tr>
  240. <td class="value">
  241. <input type="checkbox" name="ck_formsubmitflag" id="ck_formsubmitflag" value="1" onchange="changeModel(1);"/>级联提交表单信息
  242. </td>
  243. </tr>
  244. <tr>
  245. <td class="value" align="center">
  246. <div id="singleModel" style="display:black">
  247. <input type="hidden" name="option" id="option" />
  248. <input type="hidden" name="nextnode" id="nextnode" />
  249. <c:forEach items="${transitionList}" var="trans">
  250. <input type="button" buttongroup="buttongroup" class="blueButton" onclick="disabledButton();preProcPass('${trans.Transition }','${trans.nextnode}')" value="${trans.Transition }">
  251. </c:forEach>
  252. <c:if test="${histListSize > 0 }">
  253. <c:if test="${turnbackTaskId!='' }">
  254. <input type="button" buttongroup="buttongroup" class="blueButton" onclick="disabledButton();rejectProcessButton('${turnbackTaskId}');" value='退回'>
  255. </c:if>
  256. </c:if>
  257. </div>
  258. <div id="manyModelButton" style="display:none">
  259. <input type="button" buttongroup="buttongroup" class="blueButton" onclick="disabledButton();preManyModelSubmit();" value='<t:mutiLang langKey="common.submit"/>'>
  260. <input type="hidden" name="transStr" id="transStr">
  261. <c:if test="${histListSize > 0 }">
  262. <c:if test="${turnbackTaskId!='' }">
  263. <input type="button" id="rejectModelButton" buttongroup="buttongroup" class="blueButton" onclick="disabledButton();rejectProcessButton('${turnbackTaskId}');" value='退回'>
  264. </c:if>
  265. </c:if>
  266. </div>
  267. </td>
  268. </tr>
  269. </table>
  270. </t:formvalid>
  271. <script type="text/javascript">
  272. function isChecked(){
  273. var flag = false;
  274. var ck = $("#ck_formsubmitflag").attr("checked");
  275. if(ck){
  276. flag = true;
  277. }
  278. return flag;
  279. }
  280. function iframeresize(id)
  281. {
  282. var iframe = document.getElementById(id);
  283. var iframeDocument = null;
  284. //safari和chrome都是webkit内核的浏览器,但是webkit可以,chrome不可以
  285. if (iframe.contentDocument)
  286. {
  287. //ie 8,ff,opera,safari
  288. iframeDocument = iframe.contentDocument;
  289. }
  290. else if (iframe.contentWindow)
  291. {
  292. // for IE, 6 and 7:
  293. iframeDocument = iframe.contentWindow.document;
  294. }
  295. if (!!iframeDocument) {
  296. iframe.width=iframeDocument.documentElement.scrollWidth+"px";
  297. iframe.height=iframeDocument.documentElement.scrollHeight+"px";
  298. } else {
  299. alert("this browser doesn't seem to support the iframe document object");
  300. }
  301. }
  302. function hiddenloading(){
  303. $("#panelloadingDiv").hide();
  304. $("#taskformiframe").show();
  305. }
  306. function disabledButton(){
  307. $('input[buttongroup="buttongroup"]').attr("disabled","true");
  308. $('input[buttongroup="buttongroup"]').attr("class","disabledButton");
  309. }
  310. function preProcPass(yes,nextnode){
  311. $("#option").val(yes);
  312. $("#nextnode").val(nextnode);
  313. if(isChecked()){
  314. window.frames["taskformiframe"].submitFrame();
  315. }else{
  316. procPass();
  317. }
  318. }
  319. function procPass(){
  320. //alert('d.success');
  321. //$("#option").val(yes);
  322. //$("#nextnode").val(nextnode);
  323. var formData = {};
  324. $(formobj).find("input,textarea,select").each(function(){
  325. if($(this).attr("name") == 'model'){
  326. formData[$(this).attr("name")]= $('input[name="model"]:checked').val();
  327. }else{
  328. formData[$(this).attr("name")]= $(this).val();
  329. }
  330. });
  331. //ajax方式提交iframe内的表单
  332. $.ajax({
  333. async : false,
  334. cache : false,
  335. type : 'POST',
  336. data : formData,
  337. url : 'activitiController.do?processComplete',// 请求的action路径
  338. error : function() {// 请求失败处理函数
  339. alert('提交申请失败');
  340. },
  341. success : function(data) {
  342. var d = data; // ------ $.parseJSON(data);
  343. //alert('d.success'+d.success);
  344. if (d.success) {
  345. $("#bpmlogId").val(d.obj.id);
  346. if($(".uploadify-queue-item").length>0){
  347. upload();
  348. }else{
  349. var msg = d.msg;
  350. W.tip(msg);
  351. W.reloadTable();
  352. windowapi.close();
  353. }
  354. }else{
  355. var msg = d.msg;
  356. //W.tip(msg);
  357. alert(msg);
  358. }
  359. }
  360. });
  361. }
  362. function rejectProcessButton(turnbackTaskId){
  363. var formData = {};
  364. $(formobj).find("input,textarea,select").each(function(){
  365. if($(this).attr("name") == 'model'){
  366. formData[$(this).attr("name")]= "3";
  367. }else if($(this).attr("name") == 'rejectModelNode'){
  368. formData[$(this).attr("name")]= turnbackTaskId;
  369. }else{
  370. formData[$(this).attr("name")]= $(this).val();
  371. }
  372. });
  373. $.ajax({
  374. async : false,
  375. cache : false,
  376. type : 'POST',
  377. data : formData,
  378. url : 'activitiController.do?processComplete',// 请求的action路径
  379. error : function() {// 请求失败处理函数
  380. alert('退回失败');
  381. },
  382. success : function(data) {
  383. var d = data; // ------ $.parseJSON(data);
  384. //alert('d.success'+d.success);
  385. if (d.success) {
  386. $("#bpmlogId").val(d.obj.id);
  387. if($(".uploadify-queue-item").length>0){
  388. upload();
  389. }else{
  390. var msg = d.msg;
  391. W.tip(msg);
  392. W.reloadTable();
  393. windowapi.close();
  394. }
  395. }else{
  396. var msg = d.msg;
  397. //W.tip(msg);
  398. alert(msg);
  399. }
  400. }
  401. });
  402. }
  403. /**
  404. * 单分支模式/多分支模式切换
  405. */
  406. function changeModel(value){
  407. if(value == 1){
  408. //单分支模式
  409. $("#singleModel").show();
  410. $("#manyModel").hide();
  411. $("#manyModelButton").hide();
  412. $("#rejectModel").hide();
  413. }else if(value == 2){
  414. //多分支模式
  415. $("#singleModel").hide();
  416. $("#rejectModel").hide();
  417. $("#manyModel").show();
  418. $("#manyModelButton").show();
  419. $("#rejectModelButton").show();
  420. }else{
  421. $("#singleModel").hide();
  422. $("#manyModel").hide();
  423. $("#rejectModel").show();
  424. $("#manyModelButton").show();
  425. $("#rejectModelButton").hide();
  426. }
  427. }
  428. /**
  429. * 指定下一步处理人/指定下一步会签人员切换
  430. */
  431. function changeUsernameCheckbox(){
  432. if($("#next_username_checkbox").attr("checked")=="checked"
  433. ||$("#next_username_checkbox").attr("checked")=="true"){
  434. //是
  435. $("#next_username_checkbox_tr").show();
  436. }else{
  437. //否
  438. $("#next_username_checkbox_tr").hide();
  439. $("#id").val("");
  440. $("#last").val("");
  441. }
  442. }
  443. /**
  444. * 是否抄送
  445. */
  446. function changeCCUsernameCheckbox(){
  447. if($("#ccusername_checkbox").attr("checked")=="checked"
  448. ||$("#ccusername_checkbox").attr("checked")=="true"){
  449. //是
  450. $("#ccusername_checkbox_tr").show();
  451. }else {
  452. //否
  453. $("#ccusername_checkbox_tr").hide();
  454. $("#ccUserNames").val("");
  455. $("#ccUserRealNames").val("");
  456. }
  457. }
  458. function preManyModelSubmit(){
  459. if(isChecked()){
  460. window.frames["taskformiframe"].submitManyModelFrame();
  461. }else{
  462. manyModelSubmit();
  463. }
  464. }
  465. /**
  466. * 多分支模式 提交
  467. */
  468. function manyModelSubmit(){
  469. // alert('d.success');
  470. /** //checkbox 选中
  471. var transStr = "";
  472. var trans = $("input[name='transition']");
  473. for(i=0;i<trans.length;i++){
  474. if(trans[i].checked==true){
  475. transStr += (trans[i].value+',');
  476. }
  477. }
  478. $("#transStr").val(transStr);
  479. if(transStr == ""){
  480. alert("多分支模式必须选择下一步分支");
  481. return;
  482. }
  483. */
  484. var formData = {};
  485. $(formobj).find("input,textarea,select").each(function(){
  486. if($(this).attr("name") == 'model'){
  487. formData[$(this).attr("name")]= $('input[name="model"]:checked').val();
  488. }else{
  489. formData[$(this).attr("name")]= $(this).val();
  490. }
  491. });
  492. $.ajax({
  493. async : false,
  494. cache : false,
  495. type : 'POST',
  496. data : formData,
  497. url : 'activitiController.do?processComplete',// 请求的action路径
  498. error : function() {// 请求失败处理函数
  499. alert('提交申请失败');
  500. },
  501. success : function(data) {
  502. var d = data; // ------ $.parseJSON(data);
  503. //alert('d.success'+d.success);
  504. if (d.success) {
  505. $("#bpmlogId").val(d.obj.id);
  506. if($(".uploadify-queue-item").length>0){
  507. upload();
  508. }else{
  509. var msg = d.msg;
  510. W.tip(msg);
  511. W.reloadTable();
  512. windowapi.close();
  513. }
  514. }else{
  515. var msg = d.msg;
  516. //W.tip(msg);
  517. alert(msg);
  518. }
  519. }
  520. });
  521. }
  522. </script>
  523. </body>
  524. </html>