personalAfterOrder.zml 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337
  1. ${Styles.htmlOverflowHidden()}
  2. ${Scripts.src("/zinc/js/global_2019010801.js")}
  3. ${yangcai_calc_Left_width_height(340, 110)}
  4. <script>
  5. //查询操作员
  6. var attaTypeMap = new Z.HashMap();
  7. var blameOrgMap = new Z.HashMap();
  8. var orgUserListMap = new Z.HashMap();
  9. Z.onload(function(){
  10. //初始化 文件类型
  11. <#for item : FileTypeConstants.getFileTypeList()>
  12. attaTypeMap.put('${item.value()}', '${item.desc()}')
  13. </#for>
  14. //初始化 责任组织 & 初始化组织操作员
  15. <#for org : ZmrOrgDao.list(request)>
  16. blameOrgMap.put('${org.getOrgId()}', getObject('${org}'));
  17. var users${org.getOrgId()} = [];
  18. <#for opr : ZmrOperatorDao.getOperator(request, org.getOrgId())>
  19. users${org.getOrgId()}.push(getObject('${opr}'));
  20. </#for>
  21. orgUserListMap.put('${org.getOrgId()}', users${org.getOrgId()});
  22. </#for>
  23. });
  24. function getObject(json)
  25. {
  26. json = json.replace(/\r/g, '');
  27. json = json.replace(/\n/g, '<br/>');
  28. json = json.replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;');
  29. var reg = /(\u0000)|(\u0001)|(\u0002)|(\u0003)|(\u0004)|(\u0005)|(\u0006)|(\u0007)|(\u000b)|(\u000e)|(\u000f)|(\u0010)|(\u0011)|(\u0012)|(\u0013)|(\u0014)|(\u0015)|(\u0016)|(\u0017)|(\u0018)|(\u0019)|(\u001a)|(\u001b)|(\u001c)|(\u001d)|(\u001e)|(\u001f)/g;
  30. //var reg = //g;
  31. return Z.J.toObject(json.replace(reg, ""));
  32. }
  33. function doShowAfterOrderInfo(obj, designAfsId)
  34. {
  35. if (!designAfsId)
  36. {
  37. Z.alert("请选择一项");
  38. return;
  39. }
  40. var ajax = new Z.Ajax();
  41. ajax.setContextPath('${context.getContextPath()}');
  42. ajax.setClassName("DesignAfterOrderPresenter");
  43. ajax.setMethodName("doQueryAfterOrderDataInfo");
  44. ajax.addParam("designAfsId", designAfsId);
  45. ajax.setFailureAlert();
  46. ajax.setSuccess(function(){
  47. //初始化数据内容
  48. var attamap = new Z.HashMap();
  49. var obj = getObject(this.responseText);
  50. var afterOrder = obj.afterOrder;
  51. var problemType = obj.problemType;
  52. var attaList = obj.afterAttaList;
  53. for (var i=0; i< attaList.length; i++)
  54. {
  55. var atta = attaList[i];
  56. var list = attamap.get(atta.attaModul);
  57. if (!list)
  58. list=[];
  59. list.push(atta);
  60. attamap.put(atta.attaModul, list);
  61. }
  62. var afterRightContent = '';
  63. afterRightContent +='\r\n <table class="z-table z-pd10 z-bordered z-w100p" style="margin-top:;">';
  64. afterRightContent +='\r\n <tr bgcolor="#f5f5f5">';
  65. afterRightContent +='\r\n <td>产品信息:</td>';
  66. afterRightContent +='\r\n </tr>';
  67. afterRightContent +='\r\n <tr>';
  68. afterRightContent +='\r\n <td id="orderText" class="z-lh150p">'+afterOrder.orderText+'</td>';
  69. afterRightContent +='\r\n </tr>';
  70. afterRightContent +='\r\n <tr bgcolor="#f5f5f5">';
  71. afterRightContent +='\r\n <td><span class="z-bold">问题描述:</td>';
  72. afterRightContent +='\r\n </tr>';
  73. afterRightContent +='\r\n <tr>';
  74. afterRightContent +='\r\n <td id="problemDesc" class="z-lh150p">';
  75. afterRightContent +='\r\n <div id="problemDesc" class="z-overflow-y-auto z-w100p" id="atta_EndFile" style="min-height:24px; max-height:100px;">';
  76. afterRightContent +='\r\n '+(afterOrder.problemDesc ? afterOrder.problemDesc : '');
  77. afterRightContent +='\r\n </div>';
  78. afterRightContent +='\r\n </td>';
  79. afterRightContent +='\r\n </tr>';
  80. if (problemType && problemType.problemName)
  81. {
  82. afterRightContent +='\r\n <tr bgcolor="#f5f5f5">';
  83. afterRightContent +='\r\n <td><span class="z-bold">售后原因:</td>';
  84. afterRightContent +='\r\n </tr>';
  85. afterRightContent +='\r\n <tr>';
  86. afterRightContent +='\r\n <td id="problemDesc" class="z-lh150p">';
  87. afterRightContent +='\r\n <div id="problemDesc" class="z-overflow-y-auto z-w100p" id="atta_EndFile" style="min-height:24px; max-height:100px;">';
  88. afterRightContent +='\r\n '+(problemType.problemName);
  89. afterRightContent +='\r\n </div>';
  90. afterRightContent +='\r\n </td>';
  91. afterRightContent +='\r\n </tr>';
  92. }
  93. for (var i=0; i<attamap._keys.length; i++)
  94. {
  95. var attaList = attamap.get(attamap._keys[i]);
  96. if (!attaList || attaList.length == 0)
  97. continue;
  98. if (!attaTypeMap.get(attamap._keys[i]))
  99. continue;//不支持的附件类型
  100. afterRightContent +='\r\n <tr class="z-h40" bgcolor="#efefef">';
  101. afterRightContent +='\r\n <td style="position: relative;">';
  102. afterRightContent +='\r\n <input type="checkbox" class="z-checkbox" data-role="z-checkbox" data-class="z-blue" onclick="Z.FM.doSelectCheckBox(\'atta_'+attamap._keys[i]+'\', this.checked);" >';
  103. afterRightContent +='\r\n <b class="z-pd4">'+attaTypeMap.get(attamap._keys[i])+'</b>';
  104. afterRightContent +='\r\n <button id="download_'+attamap._keys[i]+'" onclick="doDownload(\''+attamap._keys[i]+'\')" class="z-button z-mg-l20 z-float-right z-orange z-mg-r6">下载</button>';
  105. afterRightContent +='\r\n </td>';
  106. afterRightContent +='\r\n </tr>';
  107. afterRightContent +='\r\n <tr class="z-h40">';
  108. afterRightContent +='\r\n <td class="z-pd-l10">';
  109. for (var j=0; j<attaList.length; j++)
  110. {
  111. var atta = attaList[j];
  112. afterRightContent +='\r\n <div class="z-overflow-y-auto z-w100p" style="min-height:24px; max-height:100px;">';
  113. afterRightContent +='\r\n <div id="div_checkbox_'+atta.attaId+'" class="z-text-ellipsis z-w300 z-pointer" onclick="" title="'+atta.fileName+'">';
  114. afterRightContent +='\r\n <input id="atta_'+atta.attaId+'" name="atta_'+atta.attaModul+'" type="checkbox" class="z-checkbox" data-role="z-checkbox" data-class="z-blue" data-attaid="'+atta.attaId+'" data-downloadUrl="'+(atta.ossUrl ? atta.ossUrl : '')+'" value="'+atta.attaId+'"><span class="z-pd6" onclick="Z(this).parent().find(\'zcover>i.z-checkbox\').click();">'+atta.fileName+'</span><br>';
  115. afterRightContent +='\r\n </div>';
  116. afterRightContent +='\r\n </div>';
  117. }
  118. afterRightContent +='\r\n </td>';
  119. afterRightContent +='\r\n </tr>';
  120. }
  121. afterRightContent +='\r\n </table>';
  122. Z("#afterRightContent").htmlc(afterRightContent);
  123. });
  124. ajax.execute();
  125. }
  126. function doDownload(attaType)
  127. {
  128. var attaIds = Z.FM.getCheckBoxValue("atta_" + attaType, "");
  129. if (Z.V.isEmpty(attaIds))
  130. {
  131. parent.Z.alert("请选择需要下载的文件");
  132. return false;
  133. }
  134. var ajax = new Z.Ajax();
  135. ajax.setClassName("UploadFilePresenter");
  136. ajax.setMethodName("doDownloadFile");
  137. ajax.addParam("attaId", attaIds);
  138. ajax.setFailure(function(){
  139. Z.alert(this.responseText,null, {width:320});
  140. });
  141. ajax.setSuccess(function(){
  142. Z.L.href("/downFile.htm?attaId=" + attaIds, zCallFrame);
  143. });
  144. ajax.setLoading('download_'+attaType, '下载', {disabled:true});
  145. ajax.execute();
  146. }
  147. </script>
  148. ${zhiqim_manager_breadcrumb("售后单列表")}
  149. ${zhiqim_manager_content()}
  150. <#-- 导航 -->
  151. <div data-role="z-tabnav" class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
  152. <nav>
  153. <ul>
  154. <li onclick="Z.L.href('waitHandleAfterOrder.htm')">待处理的售后</li>
  155. <li class="z-active">个人售后单列表</li>
  156. </ul>
  157. </nav>
  158. </div>
  159. <#-- 左侧功能 -->
  160. <div id="left" class="z-overflow-y-auto z-overflow-x-hidden z-relative-left">
  161. <#-- 查询条件 -->
  162. ${zhiqim_manager_title("查询条件")}
  163. <form name="theForm" method="post">
  164. <table class="z-table z-bordered z-pd6 z-bg-white">
  165. <tr>
  166. <td width="30%">售后单号:<input name="designAfsId" class="${zmr_color_class} z-input z-w180 z-mg-l4" value="${designAfsId}" maxlength="64" placeholder="订单号"></td>
  167. <td width="34%">订&nbsp;单&nbsp;号 :<input name="designId" class="${zmr_color_class} z-input z-w180 z-mg-l4" value="${designId}" maxlength="64" placeholder="订单号"></td>
  168. <td>
  169. 创建时间:
  170. <input id="startCreateDate" name="startCreateDate" class="z-input z-w90 ${zmr_color_class}" readonly="true" onfocus="Z.date(this);" value="${startCreateDate}">&nbsp;-&nbsp;
  171. <input id="endCreateDate" name="endCreateDate" class="z-input z-mg-l3 z-w90 ${zmr_color_class}" readonly="true" onfocus="Z.date(this);" value="${endCreateDate}">
  172. </td>
  173. </tr>
  174. <tr class="z-h40">
  175. <td>责&nbsp;任&nbsp;人 :
  176. <select name="afterBlamer" class="z-select z-w180" data-role="z-select-search" data-class="${zmr_color_class}">
  177. <option value="">全部</option>
  178. <#for item : designerList>
  179. <option value="${item.getOperatorCode()}" <#if item.getOperatorCode() == afterBlamer>selected</#if>>${item.getOperatorCode()}</option>
  180. </#for>
  181. </select>
  182. </td>
  183. <td>处理状态:
  184. <select name="afterStatus" class="z-select z-w180" data-role="z-select" data-class="${zmr_color_class}">
  185. <option value="">全部</option>
  186. <#for item : AfterConstants.getStatusList()>
  187. <option value="${item.value()}" <#if item.value() == afterStatus>selected</#if>>${item.desc()}</option>
  188. </#for>
  189. </select>
  190. </td>
  191. <td>
  192. </td>
  193. </tr>
  194. <tr class="z-h40">
  195. <td colspan="3" class="z-text-center"><button class="z-button z-large z-w120 z-mg-r15 ${zmr_color_class}">查询</button><button class="z-button z-large" type="button" onclick="Z.FM.clearForm(this.form);">清空</button></td>
  196. </tr>
  197. </table>
  198. </form>
  199. <#-- 操作功能 -->
  200. <div class="z-w100p z-mg-t10 z-mg-b3">
  201. </div>
  202. <#-- 列表-->
  203. <div class="z-overflow-auto z-bd-r">
  204. <table class="z-table z-bordered z-h40-tr z-pd5 zi-bd-r-none z-bg-white z-text-center" style="width:2200px">
  205. <tr bgcolor="${zmr_thead_bgcolor}" data-layoutCode="orderList">
  206. <td width="60">选择</td>
  207. <td width="100">售后单号</td>
  208. <td width="120">责任组织</td>
  209. <td width="100">设计单号</td>
  210. <td width="100">处理状态</td>
  211. <td width="250">售后原因</td>
  212. <td width="150">产品</td>
  213. <td width="140">旺旺号</td>
  214. <td width="200">特殊工艺</td>
  215. <td width="80">订单金额</td>
  216. <td width="90">创建时间</td>
  217. <td width="100">责任人</td>
  218. <td width="120">联系人</td>
  219. <td width="120">对稿手机</td>
  220. <td width="120">对稿微信</td>
  221. <td width="100">新补单号</td>
  222. </tr>
  223. ${zhiqim_manager_tr_no_record(pageResult, 23, "暂时没有订单信息")}
  224. <#for item : pageResult.list()>
  225. <tr class="z-pointer" ${zhiqim_manager_tr_onmouse()} ${zhiqim_manager_tr_click_radio()}>
  226. <td><input name="designAfsId" type="radio" data-role="z-radio" data-class="${zmr_color_class}" onclick="doShowAfterOrderInfo(this, this.value)" value="${item.getDesignAfsId()}" data-qq="${item.getUserQq()}" data-wx="${item.getUserWx()}" data-buyerNick="${item.getBuyerNick()}"></td>
  227. <td>${item.getDesignAfsId()}</td>
  228. <td>${ZmrOrgDao.getOrgName(request, item.getPicOrgId())}</td>
  229. <td>${item.getDesignId()}</td>
  230. <td>${AfterConstants.statusHtml(item.getAfterStatus())}</td>
  231. <td>${item.getProblemDesc()}</td>
  232. <td>${item.getOrderText()}</td>
  233. <td data-shopNick="${item.getShopNick()}">${item.getBuyerNick()}</td>
  234. <td>${item.getPrintSpecial()}</td>
  235. <td>${Amounts.toYuanMustRadix(item.getAmount())}</td>
  236. <td>${Sqls.toDateTimeString(item.getAfterCreateTime())}</td>
  237. <td>${item.getAfterBlamer()}</td>
  238. <td>${item.getUserContact()}</td>
  239. <td>${item.getUserMobile()}</td>
  240. <td>${item.getUserWx()}</td>
  241. <td><#if item.getNewDesignId() gt 0>${item.getNewDesignId()}</#if></td>
  242. </tr>
  243. </#for>
  244. </table>
  245. </div>
  246. ${zhiqim_manager_paging(pageResult, "personalAfterOrder.htm")}
  247. </div>
  248. ${zhiqim_manager_content_end()}
  249. <#--右侧文件信息-->
  250. <div id="afterRight" class="z-fixed z-pd6 z-bd-l z-bg-white z-h100p" style="top:${zmr_topnav_height}px;right:0;width:340px;z-index:50;">
  251. <div id="afterRightContent" class="zi-mg-t15">
  252. <table class="z-table z-pd10 z-bordered z-w100p" style="margin-top:;">
  253. <tr bgcolor="#f5f5f5">
  254. <td>产品信息:</td>
  255. </tr>
  256. <tr>
  257. <td id="orderText" class="z-lh150p">请选择订单</td>
  258. </tr>
  259. <tr bgcolor="#f5f5f5">
  260. <td><span class="z-bold">问题描述:</span></td>
  261. </tr>
  262. <tr>
  263. <td class="z-lh150p">
  264. <div id="problemDesc" class="z-overflow-y-auto z-w100p" id="atta_EndFile" style="min-height:24px; max-height:100px;">
  265. </div>
  266. </td>
  267. </tr>
  268. <tr class="z-h40" bgcolor="#efefef">
  269. <td style="position: relative;">
  270. <zcover style="float: none; margin: 0px;"><input type="checkbox" class="z-checkbox" data-role="z-checkbox" data-class="z-blue" onclick="Z.FM.doSelectCheckBox('atta_AftersaleFile', this.checked);" data-id="Z_Checkbox_ZaKqqLra8T" style="visibility: hidden; margin: 0px;"><i class="z-checkbox z-role-checkbox z-relative z-blue" id="Z_Checkbox_ZaKqqLra8T" data-id="" data-name="" style="padding: 0px; margin-left: -16px;"></i></zcover>
  271. <b class="z-pd4">售后文件</b>
  272. <button id="download" class="z-button z-mg-l20 z-float-right z-orange z-mg-r6">下载</button>
  273. </td>
  274. </tr>
  275. <tr class="z-h40">
  276. <td class="z-pd-l10">
  277. <div class="z-overflow-y-auto z-w100p" id="atta_AftersaleFile" style="min-height:24px; max-height:100px;">
  278. </div>
  279. </td>
  280. </tr>
  281. <tr class="z-h40" bgcolor="#efefef">
  282. <td style="position: relative;">
  283. <zcover style="float: none; margin: 0px;"><input type="checkbox" class="z-checkbox" data-role="z-checkbox" data-class="z-blue" onclick="Z.FM.doSelectCheckBox('atta_DesginFile', this.checked);" data-id="Z_Checkbox_TsMUgMR9ME" style="visibility: hidden; margin: 0px;"><i class="z-checkbox z-role-checkbox z-relative z-blue" id="Z_Checkbox_TsMUgMR9ME" data-id="" data-name="" style="padding: 0px; margin-left: -16px;"></i></zcover>
  284. <b class="z-pd4">设计文件</b>
  285. <button id="download" class="z-button z-mg-l20 z-float-right z-orange z-mg-r6">下载</button>
  286. </td>
  287. </tr>
  288. <tr class="z-h40">
  289. <td class="z-pd-l10">
  290. <div class="z-overflow-y-auto z-w100p" id="atta_DesginFile" style="min-height:24px; max-height:100px;">
  291. </div>
  292. </td>
  293. </tr>
  294. <tr class="z-h40" bgcolor="#efefef">
  295. <td style="position: relative;">
  296. <zcover style="float: none; margin: 0px;"><input type="checkbox" class="z-checkbox" data-role="z-checkbox" data-class="z-blue" onclick="Z.FM.doSelectCheckBox('atta_EndFile', this.checked);" data-id="Z_Checkbox_7pxVgdChg9" style="visibility: hidden; margin: 0px;"><i class="z-checkbox z-role-checkbox z-relative z-blue" id="Z_Checkbox_7pxVgdChg9" data-id="" data-name="" style="padding: 0px; margin-left: -16px;"></i></zcover>
  297. <b class="z-pd4">印刷文件</b>
  298. <button id="download" class="z-button z-mg-l20 z-float-right z-orange z-mg-r6">下载</button>
  299. </td>
  300. </tr>
  301. <tr class="z-h40">
  302. <td class="z-pd-l10">
  303. <div class="z-overflow-y-auto z-w100p" id="atta_EndFile" style="min-height:24px; max-height:100px;">
  304. </div>
  305. </td>
  306. </tr>
  307. </table>
  308. </div>
  309. </div>
  310. <#-- 联系旺旺&联系QQ弹窗框 -->
  311. <iframe id="openFrm" class="z-hide" src="about:blank"></iframe>