index.html 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>接口文档</title>
  7. <script src="/plugin/jquery-3.3.1.min.js"></script>
  8. <script src="/plugin/jstree/jstree.min.js"></script>
  9. <script src="/plugin/bootstrap/js/bootstrap.min.js"></script>
  10. <script src="/plugin/bootstraptable/bootstrap-table.min.js"></script>
  11. <link href="/plugin/bootstraptable/bootstrap-table.min.css" rel="stylesheet" />
  12. <link rel="stylesheet" href="/plugin/bootstrap/css/bootstrap.min.css" />
  13. <link rel="stylesheet" href="/plugin/jstree/themes/default/style.min.css" />
  14. <link rel="stylesheet" href="/plugin/fontawesome/css/font-awesome.min.css" />
  15. <style>
  16. .title-box {
  17. background-color: #1b4a6f;
  18. color: white;
  19. border-bottom: 5px solid #030f1b;
  20. }
  21. .jstree-anchor {
  22. width: calc(100% - 24px);
  23. }
  24. .menu-box {
  25. overflow-y: auto;
  26. scrollbar-width: none;
  27. -ms-overflow-style: none;
  28. border-right: 2px solid #3083c5;
  29. }
  30. .menu-box::-webkit-scrollbar {
  31. display: none;
  32. }
  33. </style>
  34. </head>
  35. <body>
  36. <div class="container-fluid title-box">
  37. <div class="row alert alert-primary" role="alert" style="margin-bottom: 0"><h3>接口说明文档</h3></div>
  38. </div>
  39. <div class="container-fluid" style="margin-top: 0">
  40. <div class="row">
  41. <div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 menu-box">
  42. <div id="menutree"></div>
  43. </div>
  44. <div
  45. class="col-xs-9 col-sm-9 col-md-9 col-lg-9"
  46. id="content"
  47. style="display: none; overflow-y: auto; height: 760px; padding-top: 60px; padding-bottom: 60px"
  48. >
  49. <div class="row">
  50. <label class="col-xs-3 col-sm-3 col-md-3 col-lg-3">接口名称:</label>
  51. <div class="col-xs-8 col-sm-8 col-md-8 col-lg-8" id="title"></div>
  52. </div>
  53. <div class="row">
  54. <label class="col-xs-3 col-sm-3 col-md-3 col-lg-3">接口描述:</label>
  55. <div class="col-xs-8 col-sm-8 col-md-8 col-lg-8" id="desc"></div>
  56. </div>
  57. <div class="row">
  58. <label class="col-xs-3 col-sm-3 col-md-3 col-lg-3">接口地址:</label>
  59. <div class="col-xs-8 col-sm-8 col-md-8 col-lg-8" id="url"></div>
  60. </div>
  61. <div class="row">
  62. <label class="col-xs-3 col-sm-3 col-md-3 col-lg-3">请求方式:</label>
  63. <div class="col-xs-8 col-sm-8 col-md-8 col-lg-8" id="method"></div>
  64. </div>
  65. <div class="row">
  66. <label class="col-xs-3 col-sm-3 col-md-3 col-lg-3">接口作者:</label>
  67. <div class="col-xs-8 col-sm-8 col-md-8 col-lg-8" id="author"></div>
  68. </div>
  69. <div class="row"><label class="col-xs-12 col-sm-12 col-md-12 col-lg-12 h4">请求参数:</label></div>
  70. <div class="row">
  71. <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
  72. <table class="table table-hover" id="param"></table>
  73. </div>
  74. </div>
  75. <div class="row"><label class="col-xs-12 col-sm-12 col-md-12 col-lg-12 h4">返回参数:</label></div>
  76. <div class="row">
  77. <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
  78. <table class="table table-striped" id="return"></table>
  79. </div>
  80. </div>
  81. </div>
  82. </div>
  83. </div>
  84. </body>
  85. <script>
  86. var path = '{$path}'
  87. console.log(path)
  88. var token = '{$token}'
  89. console.log(token)
  90. $(function () {
  91. var mHeight = window.innerHeight - 100
  92. $('.menu-box').css('height', mHeight + 'px')
  93. $('#menutree').jstree({
  94. core: {
  95. animation: 200,
  96. multiple: false,
  97. check_callback: true,
  98. themes: { stripes: true },
  99. data: function (obj, callback) {
  100. var data = {}
  101. if (obj.id == '#') {
  102. data.path = path
  103. data.type = 'folder'
  104. } else {
  105. data.path = obj.original.path
  106. data.type = obj.original.type
  107. }
  108. data.token = token
  109. $.ajax({
  110. url: '/index.php/doc/index/getList',
  111. data: data,
  112. dataType: 'json',
  113. method: 'post',
  114. success: function (res) {
  115. if (res && res.code && res.code == 2) {
  116. alert('页面失效')
  117. // window.location = ''
  118. }
  119. var result = []
  120. for (var i = 0; i < res.length; i++) {
  121. res[i].id = res[i].path
  122. res[i].text = res[i].title
  123. res[i].children = res[i].hasChild
  124. result.push(res[i])
  125. }
  126. callback(result)
  127. },
  128. })
  129. },
  130. },
  131. })
  132. //获取并显示详情
  133. function showDetail(node) {
  134. var data = {
  135. class: node.class,
  136. action: node.name,
  137. token: token,
  138. }
  139. $.ajax({
  140. url: '/index.php/doc/index/getInfo',
  141. data: data,
  142. dataType: 'json',
  143. method: 'post',
  144. success: function (res) {
  145. $('#content').show()
  146. $('#content #title').text(res.title)
  147. $('#content #desc').text(res.desc)
  148. $('#content #url').text(res.url)
  149. $('#content #method').text(res.method)
  150. $('#content #author').text(res.author)
  151. $('#content #param')
  152. .bootstrapTable('destroy')
  153. .bootstrapTable({
  154. data: res.param,
  155. columns: [
  156. { field: 'name', title: '参数名' },
  157. { field: 'type', title: '类型' },
  158. { field: 'default', title: '默认值' },
  159. { field: 'desc', title: '说明' },
  160. ],
  161. })
  162. $('#content #return')
  163. .bootstrapTable('destroy')
  164. .bootstrapTable({
  165. data: res.return,
  166. columns: [
  167. { field: 'name', title: '参数名' },
  168. { field: 'type', title: '类型' },
  169. { field: 'default', title: '默认值' },
  170. { field: 'desc', title: '说明' },
  171. ],
  172. })
  173. },
  174. })
  175. }
  176. //点击事件
  177. $('#menutree').on('activate_node.jstree', function (event, obj) {
  178. var node = obj.node.original
  179. if (node.type == 'file' || node.type == 'folder') {
  180. obj.instance.toggle_node(node.path)
  181. } else {
  182. showDetail(node)
  183. }
  184. })
  185. })
  186. </script>
  187. </html>