apiInvokeLog.zml 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <#def designatedPath="/orderMerchantList.htm"/>
  2. ${zhiqim_manager_breadcrumb("商家管理")}
  3. ${zhiqim_manager_content()}
  4. <script>
  5. function doViewStackTrace(stackTraceId)
  6. {
  7. if (!stackTraceId)
  8. return;
  9. var stackTraceElem = document.getElementById(stackTraceId);
  10. var stackTrace = stackTraceElem.innerText;
  11. if (!stackTraceElem || Z.V.isEmptyBlank(stackTraceElem.innerText))
  12. {
  13. Z.failure("未找到内容");
  14. return;
  15. }
  16. var dialog = document.getElementById("stackTraceDialog");
  17. if (!dialog)
  18. Z.dialog({text:'<div id="stackTraceDialog" class="z-pd6 z-text-ellipsis z-px18"></div>',width:1024,height:300,shadow:false});
  19. var text = '';
  20. for(var i=0; i < stackTrace.length; i++)
  21. {
  22. var c = stackTrace[i]
  23. if (c == '\r\n' || c == '\n')
  24. c = '▲';
  25. else if (c == '\t')
  26. c = '&nbsp;&nbsp;&nbsp;&nbsp;';
  27. else if (c == '\r')
  28. continue;
  29. text += c;
  30. }
  31. var html = '';
  32. var arr = Z.AR.toArray(text, "▲");
  33. for(var i=0; i < arr.length; i++)
  34. {
  35. var str = arr[i];
  36. var start = -1;
  37. if (i==0)
  38. html += '<u style="color:rgb(0, 0 ,173)">';
  39. if (i > 0)
  40. html += '<br/>';
  41. for(var j= 0; j < str.length; j++)
  42. {
  43. var c=str[j]
  44. if (c == '(')
  45. html += '(<u style="color:rgb(0, 0 ,173)">'
  46. else if (c==')')
  47. html += '</u>)';
  48. else
  49. html += c;
  50. //第一行下划线结束
  51. if ((c == ':' && i == 0) || j == str.length - 1)
  52. html += '</u>';
  53. }
  54. }
  55. console.log(arr);
  56. dialog = document.getElementById("stackTraceDialog");
  57. Z(dialog).html(html);
  58. }
  59. </script>
  60. <#-- 导航 -->
  61. <div data-role="z-tabnav" class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
  62. <nav>
  63. <ul>
  64. <li onclick="Z.L.href('orderMerchantList.htm')">商家列表</li>
  65. <li class="z-active">接口日志</li>
  66. </ul>
  67. <div class="z-text-right z-mg-t10 z-mg-r5">
  68. </div>
  69. </nav>
  70. </div>
  71. ${zhiqim_manager_title("查询条件")}
  72. <form method="post">
  73. <table class="z-table z-bordered z-pd6 z-bg-white">
  74. <tr>
  75. <td width="25%">用户IP:<input name="remoteIp" class="${zmr_color_class} z-input z-w160 z-mg-l4" value="${remoteIp}" maxlength="64" placeholder="用户名"></td>
  76. <td width="25%">用户名称:<input name="remoteUser" class="${zmr_color_class} z-input z-w180 z-mg-l4" value="${remoteUser}" maxlength="64" placeholder="用户名"></td>
  77. <td width="25%">创建时间:<input id="startTime" name="startTime" class="z-input z-w150 ${zmr_color_class}" readonly="true" onfocus="Z.datetime(this);" value="${startTime}">&nbsp;-&nbsp;
  78. <input id="startTime" name="endTime" class="z-input z-mg-l3 z-w150 ${zmr_color_class}" readonly="true" onfocus="Z.datetime(this);" value="${endTime}">
  79. </td>
  80. <td width="25%">接口名称:<select name="apiName" class="z-select z-w180" data-role="z-select-search" data-class="z-blue">
  81. <option value="">全部</option>
  82. <option value="/designRest.htm" <#if Strings.equals("/designRest.htm", apiName)>selected</#if>>designRest</option>
  83. <#for item : apiList>
  84. <option value="${item.value()}" <#if item.value().equals(apiName)>selected</#if>>${item.desc()}</option>
  85. </#for>
  86. </select>
  87. </td>
  88. </tr>
  89. <tr class="z-h40">
  90. <td>状态码:<input name="statusCode" class="z-input z-w160 z-mg-l4 ${zmr_color_class} " data-options="type:Integer;paste:true" value="${statusCode}" maxlength="64" placeholder="状态码"></td>
  91. <td>结果描述:<input name="invokeMessage" class="z-input z-w180 z-mg-l4 ${zmr_color_class}" value="${invokeMessage}" maxlength="200" placeholder="模糊匹配"></td>
  92. <td colspan="2">
  93. <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>
  94. </td>
  95. </tr>
  96. <tr>
  97. </tr>
  98. </table>
  99. </form>
  100. <#-- 列表 -->
  101. <table class="z-table z-bordered z-h40-tr z-pd6 z-bg-white z-text-center">
  102. <tr bgcolor="${zmr_thead_bgcolor}">
  103. <td width="60">选择</td>
  104. <td width="120">用户名</td>
  105. <td width="8%">用户IP</td>
  106. <td width="14%">接口名</td>
  107. <td width="200">错误编号</td>
  108. <td width="100">调用结果</td>
  109. <td width="*">结果描述/错误原因</td>
  110. <td width="140">创建时间</td>
  111. <td width="300">操作</td>
  112. </tr>
  113. ${zhiqim_manager_tr_no_record(pageResult, 10, "暂时没有数据信息")}
  114. <#for item : pageResult.list()>
  115. <tr class="z-pointer" ${zhiqim_manager_tr_onmouse()} ${zhiqim_manager_tr_click_radio()}>
  116. <td><input type="radio" class="z-radio" data-role="z-radio" data-class="z-blue" id="invokeLogId" name="invokeLogId" value="${item.getInvokeLogId()}"></td>
  117. <td>${item.getRemoteUser()}</td>
  118. <td>${item.getRemoteIp()}</td>
  119. <td>${item.getApiName()}</td>
  120. <td>${item.getErrorId()}</td>
  121. <td><#if item.getStatusCode() gt 0><span class="z-text-red">失败</span><#else><span class="z-text-red">成功</span></#if></td>
  122. <td class="zi-text-left">
  123. <div class="z-text-ellipsis z-pd6" style="max-width:600px">
  124. ${item.getInvokeMessage()}
  125. </div>
  126. </td>
  127. <td>${item.getCreateTime()}</td>
  128. <td>
  129. <#if Validates.isNotEmptyBlank(item.getInvokeStackTrace())>
  130. <button type="button" class="z-button z-cyan" onclick="doViewStackTrace('stackTrace${item.getInvokeLogId()}')"><i class="z-font z-query"></i>查看错误代码</button>
  131. <#var stackTrace= item.getInvokeStackTrace()/>
  132. <span id="stackTrace${item.getInvokeLogId()}" class="z-hide">${stackTrace}</span>
  133. </#if>
  134. <button type="button" class="z-button z-red" onclick="Z.L.href('apiInvokeLogDelete.htm?invokeLogId=${item.getInvokeLogId()}')"><i class="z-font z-delete"></i>清除</button>
  135. </td>
  136. </tr>
  137. </#for>
  138. </table>
  139. ${zhiqim_manager_paging(pageResult, "apiInvokeLog.htm")}
  140. ${zhiqim_manager_content_end()}