orderCheckBackInfo.zml 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <style>
  2. body{ text-align:center}
  3. .div{ margin:0 auto; width:600px; height:300px; border:5px solid #F00}
  4. </style>
  5. <script>
  6. var reasonMap = new Z.HashMap();
  7. var catReasonMap = new Z.HashMap();
  8. var catList = [];
  9. Z.onload(function(){
  10. var ajax = new Z.Ajax();
  11. ajax.setClassName("OrderCheckPresenter");
  12. ajax.setMethodName("doQueryBackReason");
  13. ajax.setFailureAlert();
  14. ajax.setSuccess(function(){
  15. var obj = Z.J.toObject(this.responseText);
  16. var list = obj.reasonList;
  17. Z.each(list, function(item, i){
  18. var reasonId = Z.S.toString(item.reasonId);
  19. var reasonParent = Z.S.toString(item.reasonParent);
  20. item.reasonId = reasonId;
  21. item.reasonParent = reasonParent;
  22. reasonMap.put(reasonId, item);
  23. if (item.isReasonType && reasonParent == '0')
  24. {
  25. catList.push(item);
  26. }
  27. else
  28. {
  29. var rlist = catReasonMap.get(reasonParent);
  30. rlist = rlist ? rlist : [];
  31. rlist.push(item);
  32. catReasonMap.put(reasonParent, rlist);
  33. }
  34. })
  35. var select = Z.D.id("resonTypeId");
  36. if (!select)
  37. {
  38. return;
  39. }
  40. if (select.options)
  41. select.options.length=0;
  42. else
  43. select.options = [];
  44. select.options[0] = new Option('--选择原因分类--', '');
  45. Z.each(catList, function(item, i){
  46. select.options[i+1] = new Option(item.reasonText, item.reasonId);
  47. });
  48. Z("#reasonTypeSpan").htmlc(select.outerHTML);
  49. });
  50. ajax.setLoading("orderCheckWait", '正在提交', {disabled:true});
  51. ajax.execute();
  52. });
  53. function doinitReason(parentId)
  54. {
  55. var rlist = catReasonMap.get(parentId);
  56. var select = Z.D.id("reasonId");
  57. if (!select)
  58. {
  59. return;
  60. }
  61. if (select.options)
  62. select.options.length=0;
  63. else
  64. select.options = [];
  65. Z.each(rlist, function(item, i){
  66. select.options[i] = new Option(item.reasonText, item.reasonId);
  67. });
  68. Z("#reasonItemSpan").htmlc(select.outerHTML);
  69. }
  70. function doRemove()
  71. {//移除截图
  72. Z("#divImg").remove()
  73. }
  74. function doSubmit()
  75. {
  76. var desc = Z("#resonTypeId").val();
  77. if (Z.Validates.isEmpty(desc))
  78. {
  79. Z.alert("审核原因分类不能为空");
  80. return;
  81. }
  82. var data = Z("#imgData").text()
  83. var ajax = new Z.Ajax();
  84. ajax.setClassName("OrderCheckPresenter");
  85. ajax.setMethodName("doCheckback");
  86. ajax.addParam("designId", ${designId});
  87. ajax.addParam("src", '${src}');
  88. ajax.addParam("imgData", data);
  89. ajax.addParam("desc", Z("#checkBackReason").val());
  90. ajax.addParam("resonTypeId", Z("#resonTypeId").val());
  91. ajax.addParam("reasonId", Z("#reasonId").val());
  92. ajax.setFailureAlert();
  93. ajax.setSuccess(function(){
  94. Z.success("提交成功",function(){parent.location.reload();parent.Z.Dialog.close();});
  95. });
  96. ajax.setLoading("orderCheckWait", '正在提交', {disabled:true});
  97. ajax.execute();
  98. }
  99. (function(){
  100. var imgReader = function( item ){
  101. var blob = item.getAsFile(),
  102. reader = new FileReader();
  103. // 读取文件后将其显示在网页中
  104. reader.onload = function(e){
  105. var img = new Image();
  106. var result = e.target.result;
  107. Z("#imgData").text(result);
  108. img.src = result;
  109. img.id = "divImg";
  110. Z("#imgSrc").html(img.outerHTML);
  111. };
  112. // 读取文件
  113. reader.readAsDataURL(blob);
  114. };
  115. window.addEventListener('paste', function(e){
  116. // 添加到事件对象中的访问系统剪贴板的接口
  117. var clipboardData = e.clipboardData,
  118. i = 0,
  119. items, item, types;
  120. if(clipboardData){
  121. items = clipboardData.items;
  122. if( !items ){
  123. return;
  124. }
  125. item = items[0];
  126. // 保存在剪贴板中的数据类型
  127. types = clipboardData.types || [];
  128. for( ; i < types.length; i++ ){
  129. if( types[i] === 'Files' ){
  130. item = items[i];
  131. break;
  132. }
  133. }
  134. // 判断是否为图片数据
  135. if( item && item.kind === 'file' && item.type.match(/^image\//i) ){
  136. imgReader( item );
  137. }
  138. }
  139. });
  140. })();
  141. </script>
  142. ${zhiqim_manager_content()}
  143. <div class="z-mg5 z-text-left">
  144. <span class="z-mg-l20">原因分类:</span>
  145. <span id="reasonTypeSpan">
  146. <select id="resonTypeId" name="resonTypeId" class="z-select z-w200" onchange="doinitReason(this.value)" data-role="z-select-search" data-class="${zmr_color_class}" >
  147. <option value="">--选择原因分类--</option>
  148. </select>
  149. </span>
  150. <span class="z-mg-l20">问题原因:</span>
  151. <span id="reasonItemSpan">
  152. <select id="reasonId" name="reasonId" class="z-select" style="width:350px" data-role="z-select-search" data-class="${zmr_color_class}" ></select>
  153. </span>
  154. </div>
  155. <div class="z-mg5">
  156. <textarea id="checkBackReason" name="checkBackReason" class="z-textarea z-w100p z-h100" style="vertical-align: middle;" maxlength="100" placeHolder="附加退回原因"></textarea>
  157. </div>
  158. <div style="display:none" id="imgData"></div>
  159. <div>
  160. <button type="button" class="z-button z-mg-r5 z-w60 z-red z-relative-right" onclick="doRemove();">移除</button>
  161. <div id="imgSrc" class="z-overflow-y-auto" style="max-height:300px"><div id="imgSrchorder" class="z-text-left z-pd6 z-text-gray">(ctrl+v)粘贴退回截图</div></div>
  162. </div>
  163. <div style="position:fixed;bottom:0px;height:50px;width:100%;background-color:#EFEFEF;border-top: solid 1px #ededed">
  164. <div style="margin-top:10px">
  165. <button class="z-button z-w100 ${zmr_color_class}" id="orderCheckWait" onclick="doSubmit();">提交</button>&nbsp;&nbsp;&nbsp;
  166. <button type="button" class="z-button z-mg-l10 z-w80" onclick="parent.Z.Dialog.close();">关闭</button>
  167. </div>
  168. </div>
  169. <br><br>
  170. ${zhiqim_manager_content_end()}
  171. </html>