1310 lines
75 KiB
HTML
1310 lines
75 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
|
|
<meta http-equiv="Cache" content="no-cache">
|
|
<meta http-equiv="Pragma" content="no-cache" />
|
|
<meta http-equiv="Expires" content="0" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
|
<title>Api文档</title>
|
|
<!-- 依 赖 样 式 -->
|
|
<link rel="stylesheet" href="/static/component/laytp/css/laytp.css" />
|
|
<!-- 加 载 样 式-->
|
|
<link rel="stylesheet" href="/static/admin/css/load.css" />
|
|
<!-- 布 局 样 式 -->
|
|
<link rel="stylesheet" href="/static/admin/css/apidoc.css" />
|
|
</head>
|
|
<style>
|
|
.api-page-tab-content {
|
|
background-color: #fff;
|
|
overflow: auto;
|
|
min-height: 100%;
|
|
}
|
|
|
|
.api-url {
|
|
/*position: relative;*/
|
|
color: rgb(221, 17, 68);
|
|
background: #f6f6f6;
|
|
border: 1px solid #ddd;
|
|
}
|
|
|
|
.layui-form-pane .layui-form-label {
|
|
width: 280px;
|
|
/*height: 34px;*/
|
|
padding: 6px 15px;
|
|
}
|
|
|
|
.layui-form-pane .layui-input-block {
|
|
margin-left: 280px;
|
|
}
|
|
|
|
.editormd-preview-container, .editormd-html-preview {
|
|
width: 98% !important;
|
|
font-size: 16px;
|
|
}
|
|
|
|
.markdown-body li {
|
|
/* 使md编辑器中的li取消样式none */
|
|
list-style: unset;
|
|
}
|
|
|
|
.api-tab-title {
|
|
position: fixed;
|
|
left: 230px;
|
|
right: 0;
|
|
z-index: 999999;
|
|
background-color: #fff;
|
|
}
|
|
|
|
.layui-tab-bar{
|
|
display:none;
|
|
}
|
|
</style>
|
|
<!-- 结 构 代 码 -->
|
|
<body class="layui-layout-body laytp-admin">
|
|
<!-- 布 局 框 架 -->
|
|
<div class="layui-layout layui-layout-admin">
|
|
<div class="layui-header">
|
|
<!-- 顶 部 左 侧 功 能 -->
|
|
<ul class="layui-nav layui-layout-left">
|
|
<li class="collaspe layui-nav-item"><a href="javascript:void(0);" class="layui-icon layui-icon-shrink-right"></a></li>
|
|
</ul>
|
|
<!-- 顶 部 右 侧 菜 单 -->
|
|
<div id="control" class="layui-layout-control"></div>
|
|
<ul class="layui-nav layui-layout-right">
|
|
<li class="layui-nav-item layui-hide-xs"><a href="javascript:void(0);" class="fullScreen layui-icon layui-icon-screen-full"></a></li>
|
|
<!-- 主 题 配 置 -->
|
|
<li class="layui-nav-item apiSet"><a href="javascript:void(0);" class="layui-icon layui-icon-set"></a></li>
|
|
<li class="layui-nav-item setting"><a href="javascript:void(0);" class="layui-icon layui-icon-more-vertical"></a></li>
|
|
</ul>
|
|
</div>
|
|
<!-- 侧 边 区 域 -->
|
|
<div class="layui-side layui-bg-black">
|
|
<!-- 菜 单 顶 部 -->
|
|
<div class="layui-logo">
|
|
<!-- 图 标 -->
|
|
<img class="logo" />
|
|
<!-- 标 题 -->
|
|
<span class="title"></span>
|
|
</div>
|
|
<!-- 菜 单 内 容 -->
|
|
<div>
|
|
<ul class="layui-nav arrow layui-nav-tree laytp-nav-tree" style="display: block;">
|
|
<li class="layui-nav-item">
|
|
<div class="search" style="padding: 5px;">
|
|
<input type="text" class="layui-input search-menu" placeholder="搜索文档">
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="layui-side-scroll">
|
|
<div id="sideMenu"></div>
|
|
</div>
|
|
</div>
|
|
<!-- 视 图 页 面 -->
|
|
<div class="layui-body">
|
|
<div class="api-page-tab-content" id="meditor_1" style="display:none;">
|
|
<div class="layui-tab layui-tab-brief">
|
|
<ul class="layui-tab-title api-tab-title">
|
|
<li class="layui-this">
|
|
接口返回 </li>
|
|
</ul>
|
|
<div class="layui-tab-content meditorContent api-content" id="meditor_5_content">
|
|
<textarea style="display:none;">接口统一返回`json`格式的数据。
|
|
|
|
# 返回说明
|
|
|
|
|参数名|必然存在|类型|说明|
|
|
|:---- |:---|:----- |----- |
|
|
|code |是 |integer |接口返回码.0=常规正确码,表示常规操作成功;1=常规错误码,客户端仅需提示message;其他返回码与具体业务相关。框架实现了的唯一其他返回码:10401,前端需要跳转至登录界面。在一个复杂的交互过程中,你可能需要自行定义其他返回码|
|
|
|msg |是 |string | 接口返回文字描述 |
|
|
|time |是 |integer | 接口返回时间戳,单位秒 |
|
|
|data |是 |object/array | 附加数据。单条数据是对象,多条数据是数组。当为空时,会返回一个空对象{}|
|
|
|
|
# 返回示例
|
|
```
|
|
{
|
|
"code":1,
|
|
"msg":"签名错误",
|
|
"time":1613628412,
|
|
"data":{}
|
|
}
|
|
```</textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="api-page-tab-content" id="api_3" style="display:none;">
|
|
<div class="layui-tab layui-tab-brief">
|
|
<ul class="layui-tab-title api-tab-title">
|
|
<li class="layui-this">接口说明</li>
|
|
<li>在线测试</li>
|
|
</ul>
|
|
<div class="layui-tab-content markdown-body api-content">
|
|
<div class="layui-tab-item layui-show editormd-html-preview">
|
|
<p><strong>简要说明</strong></p>
|
|
<ul>
|
|
<li>查询余额</li>
|
|
</ul>
|
|
<p><strong>请求方式</strong></p>
|
|
<ul>
|
|
<li><code class="api-url">POST/GET</code></li>
|
|
</ul>
|
|
<p><strong>请求地址</strong></p>
|
|
<ul>
|
|
<li><code class="api-url" route="/api.member/Get_balance">/api.member/Get_balance</code></li>
|
|
</ul>
|
|
<p><strong>Headers参数</strong></p>
|
|
<ul>
|
|
<li>无</li>
|
|
</ul>
|
|
<p><strong>Body参数</strong></p>
|
|
<div style="width: 100%;overflow-x: auto;">
|
|
<table class="table table-bordered table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th style="text-align: left;">名称</th>
|
|
<th style="text-align: left;">类型</th>
|
|
<th style="text-align: left;">必选</th>
|
|
<th style="text-align: left;">描述</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td style="text-align:left">uid</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">是</td>
|
|
<td>uid </td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">time</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">是</td>
|
|
<td>十位时间戳 </td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">sign</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">是</td>
|
|
<td>签名 uid+time+key md5 </td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<p><strong>返回示例</strong></p>
|
|
<pre><code class="json">{
|
|
"code": 0,
|
|
"msg": "获取成功",
|
|
"time": 1747372349,
|
|
"data": {
|
|
"balance": 60
|
|
}
|
|
}</code></pre>
|
|
<p><strong>返回说明</strong></p>
|
|
<div style="width: 100%;overflow-x: auto;">
|
|
<table class="table table-bordered table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th style="text-align: left;">名称</th>
|
|
<th style="text-align: left;">类型</th>
|
|
<th style="text-align: left;">描述</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td style="text-align:left">code</td>
|
|
<td style="text-align:left">integer</td>
|
|
<td style="text-align:left">接口返回码.0=常规正确码,表示常规操作成功;1=常规错误码,客户端仅需提示msg;其他返回码与具体业务相关。框架实现了的唯一其他返回码:10401,前端需要跳转至登录界面。在一个复杂的交互过程中,你可能需要自行定义其他返回码</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">msg</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">返回描述</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">time</td>
|
|
<td style="text-align:left">integer</td>
|
|
<td style="text-align:left">请求时间,Unix时间戳,单位秒</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">data.balance</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">用户余额</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="layui-tab-item editormd-html-preview">
|
|
<div class="layui-card">
|
|
<div class="layui-card-header" style="background-color: #F2F2F2;">Body传参</div>
|
|
<div class="layui-card-body main-container">
|
|
<form class="layui-form layui-form-pane" method="POST/GET"
|
|
route="/api.member/Get_balance"
|
|
lay-filter="test_inline_3" id="test_inline_3">
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">uid</label>
|
|
<div class="layui-input-block">
|
|
<input type="text"
|
|
name="uid" autocomplete="off"
|
|
placeholder="请输入uid"
|
|
class="layui-input">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">time</label>
|
|
<div class="layui-input-block">
|
|
<input type="text"
|
|
name="time" autocomplete="off"
|
|
placeholder="请输入十位时间戳"
|
|
class="layui-input">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">sign</label>
|
|
<div class="layui-input-block">
|
|
<input type="text"
|
|
name="sign" autocomplete="off"
|
|
placeholder="请输入签名 uid+time+key md5"
|
|
class="layui-input">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<div class="layui-input-block">
|
|
<button type="button" class="laytp-btn laytp-btn-primary"
|
|
href="javascript:void(0);"
|
|
onclick="api.testInline(3)">提 交
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class="layui-card" id="response_card_3">
|
|
<div class="layui-card-header" style="background-color: #F2F2F2;">响应输出</div>
|
|
<div class="layui-card-body">
|
|
<pre><code class="json" id="response_3"></code></pre>
|
|
<pre class="layui-code" id="response_headers_3"></pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="api-page-tab-content" id="api_4" style="display:none;">
|
|
<div class="layui-tab layui-tab-brief">
|
|
<ul class="layui-tab-title api-tab-title">
|
|
<li class="layui-this">接口说明</li>
|
|
<li>在线测试</li>
|
|
</ul>
|
|
<div class="layui-tab-content markdown-body api-content">
|
|
<div class="layui-tab-item layui-show editormd-html-preview">
|
|
<p><strong>简要说明</strong></p>
|
|
<ul>
|
|
<li>api 提交代开会员</li>
|
|
</ul>
|
|
<p><strong>请求方式</strong></p>
|
|
<ul>
|
|
<li><code class="api-url">POST</code></li>
|
|
</ul>
|
|
<p><strong>请求地址</strong></p>
|
|
<ul>
|
|
<li><code class="api-url" route="/api.member/submit">/api.member/submit</code></li>
|
|
</ul>
|
|
<p><strong>Headers参数</strong></p>
|
|
<ul>
|
|
<li>无</li>
|
|
</ul>
|
|
<p><strong>Body参数</strong></p>
|
|
<div style="width: 100%;overflow-x: auto;">
|
|
<table class="table table-bordered table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th style="text-align: left;">名称</th>
|
|
<th style="text-align: left;">类型</th>
|
|
<th style="text-align: left;">必选</th>
|
|
<th style="text-align: left;">描述</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td style="text-align:left">uid</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">是</td>
|
|
<td>用户id </td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">username</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">是</td>
|
|
<td>需要开通的用户名 </td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">order</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">是</td>
|
|
<td>订单号 小于25位的字符串 </td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">cycle</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">是</td>
|
|
<td>开通周期 支持 3 6 12 </td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">time</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">是</td>
|
|
<td>时间戳 10位 </td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">callback</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">否</td>
|
|
<td>回调地址 可以为空 </td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">sign</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">是</td>
|
|
<td>签名 签名顺序 uid+username+time+key </td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<p><strong>返回示例</strong></p>
|
|
<pre><code class="json">{
|
|
"code": 0,
|
|
"msg": "操作成功",
|
|
"time": 1584513627,
|
|
"data": {
|
|
"token": "b58ea1f0-e856-4ec4-b2b3-d852b9af86b5"
|
|
}
|
|
}</code></pre>
|
|
<p><strong>返回说明</strong></p>
|
|
<div style="width: 100%;overflow-x: auto;">
|
|
<table class="table table-bordered table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th style="text-align: left;">名称</th>
|
|
<th style="text-align: left;">类型</th>
|
|
<th style="text-align: left;">描述</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td style="text-align:left">code</td>
|
|
<td style="text-align:left">integer</td>
|
|
<td style="text-align:left">接口返回码.0=常规正确码,表示常规操作成功;1=常规错误码,客户端仅需提示msg;其他返回码与具体业务相关。框架实现了的唯一其他返回码:10401,前端需要跳转至登录界面。在一个复杂的交互过程中,你可能需要自行定义其他返回码</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">msg</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">返回描述</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">time</td>
|
|
<td style="text-align:left">integer</td>
|
|
<td style="text-align:left">请求时间,Unix时间戳,单位秒</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">data.token</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">用户登录后得到的凭证,token</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="layui-tab-item editormd-html-preview">
|
|
<div class="layui-card">
|
|
<div class="layui-card-header" style="background-color: #F2F2F2;">Body传参</div>
|
|
<div class="layui-card-body main-container">
|
|
<form class="layui-form layui-form-pane" method="POST"
|
|
route="/api.member/submit"
|
|
lay-filter="test_inline_4" id="test_inline_4">
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">uid</label>
|
|
<div class="layui-input-block">
|
|
<input type="text"
|
|
name="uid" autocomplete="off"
|
|
placeholder="请输入用户id"
|
|
class="layui-input">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">username</label>
|
|
<div class="layui-input-block">
|
|
<input type="text"
|
|
name="username" autocomplete="off"
|
|
placeholder="请输入需要开通的用户名"
|
|
class="layui-input">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">order</label>
|
|
<div class="layui-input-block">
|
|
<input type="text"
|
|
name="order" autocomplete="off"
|
|
placeholder="请输入订单号 小于25位的字符串"
|
|
class="layui-input">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">cycle</label>
|
|
<div class="layui-input-block">
|
|
<input type="text"
|
|
name="cycle" autocomplete="off"
|
|
placeholder="请输入开通周期 支持 3 6 12"
|
|
class="layui-input">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">time</label>
|
|
<div class="layui-input-block">
|
|
<input type="text"
|
|
name="time" autocomplete="off"
|
|
placeholder="请输入时间戳 10位"
|
|
class="layui-input">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">callback</label>
|
|
<div class="layui-input-block">
|
|
<input type="text"
|
|
name="callback" autocomplete="off"
|
|
placeholder="请输入回调地址 可以为空"
|
|
class="layui-input">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">sign</label>
|
|
<div class="layui-input-block">
|
|
<input type="text"
|
|
name="sign" autocomplete="off"
|
|
placeholder="请输入签名 签名顺序 uid+username+time+key"
|
|
class="layui-input">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<div class="layui-input-block">
|
|
<button type="button" class="laytp-btn laytp-btn-primary"
|
|
href="javascript:void(0);"
|
|
onclick="api.testInline(4)">提 交
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class="layui-card" id="response_card_4">
|
|
<div class="layui-card-header" style="background-color: #F2F2F2;">响应输出</div>
|
|
<div class="layui-card-body">
|
|
<pre><code class="json" id="response_4"></code></pre>
|
|
<pre class="layui-code" id="response_headers_4"></pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="api-page-tab-content" id="api_5" style="display:none;">
|
|
<div class="layui-tab layui-tab-brief">
|
|
<ul class="layui-tab-title api-tab-title">
|
|
<li class="layui-this">接口说明</li>
|
|
<li>在线测试</li>
|
|
</ul>
|
|
<div class="layui-tab-content markdown-body api-content">
|
|
<div class="layui-tab-item layui-show editormd-html-preview">
|
|
<p><strong>简要说明</strong></p>
|
|
<ul>
|
|
<li>退单接口,未开通且在未处理状态 可以支持退单</li>
|
|
</ul>
|
|
<p><strong>请求方式</strong></p>
|
|
<ul>
|
|
<li><code class="api-url">GET</code></li>
|
|
</ul>
|
|
<p><strong>请求地址</strong></p>
|
|
<ul>
|
|
<li><code class="api-url" route="/api.member/chargeback">/api.member/chargeback</code></li>
|
|
</ul>
|
|
<p><strong>Headers参数</strong></p>
|
|
<ul>
|
|
<li>无</li>
|
|
</ul>
|
|
<p><strong>Body参数</strong></p>
|
|
<div style="width: 100%;overflow-x: auto;">
|
|
<table class="table table-bordered table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th style="text-align: left;">名称</th>
|
|
<th style="text-align: left;">类型</th>
|
|
<th style="text-align: left;">必选</th>
|
|
<th style="text-align: left;">描述</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td style="text-align:left">uid</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">是</td>
|
|
<td>uid </td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">order</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">是</td>
|
|
<td>订单号 </td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">username</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">是</td>
|
|
<td>开通的用户名 </td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">time</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">是</td>
|
|
<td>十位时间戳 </td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">sign</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">是</td>
|
|
<td>签名顺序 uid+order+username+time+key </td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<p><strong>返回示例</strong></p>
|
|
<pre><code class="json">{
|
|
"code": 0,
|
|
"msg": "注销成功",
|
|
"time": 1584513627,
|
|
"data": null
|
|
}</code></pre>
|
|
<p><strong>返回说明</strong></p>
|
|
<div style="width: 100%;overflow-x: auto;">
|
|
<table class="table table-bordered table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th style="text-align: left;">名称</th>
|
|
<th style="text-align: left;">类型</th>
|
|
<th style="text-align: left;">描述</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td style="text-align:left">code</td>
|
|
<td style="text-align:left">integer</td>
|
|
<td style="text-align:left">接口返回码.0=常规正确码,表示常规操作成功;1=常规错误码,客户端仅需提示msg;其他返回码与具体业务相关。框架实现了的唯一其他返回码:10401,前端需要跳转至登录界面。在一个复杂的交互过程中,你可能需要自行定义其他返回码</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">msg</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">返回描述</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">time</td>
|
|
<td style="text-align:left">integer</td>
|
|
<td style="text-align:left">请求时间,Unix时间戳,单位秒</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">data</td>
|
|
<td style="text-align:left">null</td>
|
|
<td style="text-align:left">只会返回null</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="layui-tab-item editormd-html-preview">
|
|
<div class="layui-card">
|
|
<div class="layui-card-header" style="background-color: #F2F2F2;">Body传参</div>
|
|
<div class="layui-card-body main-container">
|
|
<form class="layui-form layui-form-pane" method="GET"
|
|
route="/api.member/chargeback"
|
|
lay-filter="test_inline_5" id="test_inline_5">
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">uid</label>
|
|
<div class="layui-input-block">
|
|
<input type="text"
|
|
name="uid" autocomplete="off"
|
|
placeholder="请输入uid"
|
|
class="layui-input">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">order</label>
|
|
<div class="layui-input-block">
|
|
<input type="text"
|
|
name="order" autocomplete="off"
|
|
placeholder="请输入订单号"
|
|
class="layui-input">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">username</label>
|
|
<div class="layui-input-block">
|
|
<input type="text"
|
|
name="username" autocomplete="off"
|
|
placeholder="请输入开通的用户名"
|
|
class="layui-input">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">time</label>
|
|
<div class="layui-input-block">
|
|
<input type="text"
|
|
name="time" autocomplete="off"
|
|
placeholder="请输入十位时间戳"
|
|
class="layui-input">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">sign</label>
|
|
<div class="layui-input-block">
|
|
<input type="text"
|
|
name="sign" autocomplete="off"
|
|
placeholder="请输入签名顺序 uid+order+username+time+key"
|
|
class="layui-input">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<div class="layui-input-block">
|
|
<button type="button" class="laytp-btn laytp-btn-primary"
|
|
href="javascript:void(0);"
|
|
onclick="api.testInline(5)">提 交
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class="layui-card" id="response_card_5">
|
|
<div class="layui-card-header" style="background-color: #F2F2F2;">响应输出</div>
|
|
<div class="layui-card-body">
|
|
<pre><code class="json" id="response_5"></code></pre>
|
|
<pre class="layui-code" id="response_headers_5"></pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="api-page-tab-content" id="api_6" style="display:none;">
|
|
<div class="layui-tab layui-tab-brief">
|
|
<ul class="layui-tab-title api-tab-title">
|
|
<li class="layui-this">接口说明</li>
|
|
<li>在线测试</li>
|
|
</ul>
|
|
<div class="layui-tab-content markdown-body api-content">
|
|
<div class="layui-tab-item layui-show editormd-html-preview">
|
|
<p><strong>简要说明</strong></p>
|
|
<ul>
|
|
<li>订单状态查询</li>
|
|
</ul>
|
|
<p><strong>请求方式</strong></p>
|
|
<ul>
|
|
<li><code class="api-url">GET</code></li>
|
|
</ul>
|
|
<p><strong>请求地址</strong></p>
|
|
<ul>
|
|
<li><code class="api-url" route="/api.member/QueryOrder">/api.member/QueryOrder</code></li>
|
|
</ul>
|
|
<p><strong>Headers参数</strong></p>
|
|
<ul>
|
|
<li>无</li>
|
|
</ul>
|
|
<p><strong>Body参数</strong></p>
|
|
<div style="width: 100%;overflow-x: auto;">
|
|
<table class="table table-bordered table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th style="text-align: left;">名称</th>
|
|
<th style="text-align: left;">类型</th>
|
|
<th style="text-align: left;">必选</th>
|
|
<th style="text-align: left;">描述</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td style="text-align:left">uid</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">是</td>
|
|
<td>uid </td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">order</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">是</td>
|
|
<td>订单号 </td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">time</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">是</td>
|
|
<td>十位时间戳 </td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">sign</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">是</td>
|
|
<td>签名顺序 uid+time+order+key </td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<p><strong>返回示例</strong></p>
|
|
<pre><code class="json">{
|
|
"code": 0,
|
|
"msg": "查询成功",
|
|
"time": 1747391435,
|
|
"data": {
|
|
"username": "@kuiba",
|
|
"start": "2",
|
|
"orderid": "20231005123456"
|
|
}
|
|
}</code></pre>
|
|
<p><strong>返回说明</strong></p>
|
|
<div style="width: 100%;overflow-x: auto;">
|
|
<table class="table table-bordered table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th style="text-align: left;">名称</th>
|
|
<th style="text-align: left;">类型</th>
|
|
<th style="text-align: left;">描述</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td style="text-align:left">code</td>
|
|
<td style="text-align:left">integer</td>
|
|
<td style="text-align:left">接口返回码.0=常规正确码,表示常规操作成功;1=常规错误码,客户端仅需提示msg;其他返回码与具体业务相关。框架实现了的唯一其他返回码:10401,前端需要跳转至登录界面。在一个复杂的交互过程中,你可能需要自行定义其他返回码</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">msg</td>
|
|
<td style="text-align:left">string</td>
|
|
<td style="text-align:left">返回描述</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">time</td>
|
|
<td style="text-align:left">integer</td>
|
|
<td style="text-align:left">请求时间,Unix时间戳,单位秒</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:left">data</td>
|
|
<td style="text-align:left">null</td>
|
|
<td style="text-align:left">只会返回null</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="layui-tab-item editormd-html-preview">
|
|
<div class="layui-card">
|
|
<div class="layui-card-header" style="background-color: #F2F2F2;">Body传参</div>
|
|
<div class="layui-card-body main-container">
|
|
<form class="layui-form layui-form-pane" method="GET"
|
|
route="/api.member/QueryOrder"
|
|
lay-filter="test_inline_6" id="test_inline_6">
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">uid</label>
|
|
<div class="layui-input-block">
|
|
<input type="text"
|
|
name="uid" autocomplete="off"
|
|
placeholder="请输入uid"
|
|
class="layui-input">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">order</label>
|
|
<div class="layui-input-block">
|
|
<input type="text"
|
|
name="order" autocomplete="off"
|
|
placeholder="请输入订单号"
|
|
class="layui-input">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">time</label>
|
|
<div class="layui-input-block">
|
|
<input type="text"
|
|
name="time" autocomplete="off"
|
|
placeholder="请输入十位时间戳"
|
|
class="layui-input">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">sign</label>
|
|
<div class="layui-input-block">
|
|
<input type="text"
|
|
name="sign" autocomplete="off"
|
|
placeholder="请输入签名顺序 uid+time+order+key"
|
|
class="layui-input">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<div class="layui-input-block">
|
|
<button type="button" class="laytp-btn laytp-btn-primary"
|
|
href="javascript:void(0);"
|
|
onclick="api.testInline(6)">提 交
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class="layui-card" id="response_card_6">
|
|
<div class="layui-card-header" style="background-color: #F2F2F2;">响应输出</div>
|
|
<div class="layui-card-body">
|
|
<pre><code class="json" id="response_6"></code></pre>
|
|
<pre class="layui-code" id="response_headers_6"></pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- 遮 盖 层 -->
|
|
<div class="laytp-cover"></div>
|
|
<!-- 加 载 动 画-->
|
|
<div class="loader-main">
|
|
<div class="loader"></div>
|
|
</div>
|
|
</div>
|
|
<!-- 移 动 端 便 捷 操 作 -->
|
|
<div class="laytp-collasped-pe collaspe">
|
|
<a href="javascript:void(0);" class="layui-icon layui-icon-shrink-right"></a>
|
|
</div>
|
|
|
|
<!-- 请求配置弹出层内容开始 -->
|
|
<script type="text/html" id="set">
|
|
<div class="popup-content">
|
|
<div class="api-page-tab-content">
|
|
<form class="layui-form" lay-filter="setDataForm" id="setDataForm">
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">Api请求域名</label>
|
|
<div class="layui-input-block">
|
|
<input type="text" name="apiUrl"
|
|
placeholder="完整的请求前缀,以http://或者https://开头,不以/结尾" autocomplete="off" class="layui-input"
|
|
value="{{d.apiUrl}}">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label" title="开关">签名验证</label>
|
|
<div class="layui-input-block">
|
|
<!-- 隐藏域设置开关未选中时需要传递的参数值 -->
|
|
<input type="hidden" name="createSign" id="createSign-2" value="2"/>
|
|
<input type="checkbox" name="createSign" id="createSign-1" lay-skin="switch" lay-text="验证|不验证"
|
|
{{# if(d.createSign== 1){ }}checked="checked" {{# } }} value="1"/>
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label" title="Header参数">Header参数</label>
|
|
<div class="layui-input-block">
|
|
<table class="layui-table">
|
|
<thead>
|
|
<tr>
|
|
<th>参数Key</th>
|
|
<th>参数Value</th>
|
|
<th>操作</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">
|
|
<input type="text" class="layui-input" value="token" readonly="readonly"/>
|
|
</td>
|
|
<td>
|
|
<input type="text" class="layui-input" name="token" value="{{d.headerJson.token}}"
|
|
autocomplete="off"/>
|
|
</td>
|
|
<td></td>
|
|
</tr>
|
|
{{# let k; }}
|
|
{{# for(k in d.headerJson){ }}
|
|
{{# if(k !== "token" && k !== "sign" && k !== "request-time"){ }}
|
|
<tr>
|
|
<td align="right">
|
|
<input type="text" class="layui-input" name="header[key][]" value="{{k}}"
|
|
autocomplete="off"/>
|
|
</td>
|
|
<td>
|
|
<input type="text" class="layui-input" name="header[value][]"
|
|
value="{{d.headerJson[k]}}" autocomplete="off"/>
|
|
</td>
|
|
<td>
|
|
<a class="layui-btn layui-btn-primary layui-btn-sm layui-icon layui-icon-delete del-header-param"></a>
|
|
</td>
|
|
</tr>
|
|
{{# } }}
|
|
{{# } }}
|
|
<tr>
|
|
<td colspan="4">
|
|
<a class="layui-btn layui-btn-primary layui-btn-sm layui-icon layui-icon-add-1 add-header-param">追加参数</a>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</script>
|
|
<!-- 请求配置弹出层内容结束 -->
|
|
|
|
<script type="text/html" id="arrayParam">
|
|
<table class="layui-table">
|
|
<tbody>
|
|
<tr>
|
|
<td align="right">
|
|
<input type="text" class="layui-input" name="{{d.field}}[]" autocomplete="off"/>
|
|
</td>
|
|
<td>
|
|
<a class="layui-btn layui-btn-primary layui-btn-sm layui-icon layui-icon-delete del-array-param"></a>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="4">
|
|
<a class="layui-btn layui-btn-primary layui-btn-sm layui-icon layui-icon-add-1 add-array-param">追加参数</a>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</script>
|
|
|
|
<!-- 依 赖 脚 本 -->
|
|
<script type="text/javascript" src="/static/component/jquery_3.3.1.js" charset="utf-8"></script>
|
|
<script type="text/javascript" src="/static/component/jquery.serializejson.min.js" charset="utf-8"></script>
|
|
<script type="text/javascript" src="/static/component/highlight/highlight.pack.js" charset="utf-8"></script>
|
|
<link rel="stylesheet" type="text/css" href="/static/component/highlight/styles/docco.css"/>
|
|
|
|
<link rel="stylesheet" href="/static/plugin/meditor/css/editormd.css"/>
|
|
<script src="/static/plugin/meditor/lib/marked.min.js"></script>
|
|
<script src="/static/plugin/meditor/lib/prettify.min.js"></script>
|
|
<script src="/static/plugin/meditor/lib/flowchart.min.js"></script>
|
|
<script src="/static/plugin/meditor/lib/raphael.min.js"></script>
|
|
<script src="/static/plugin/meditor/lib/underscore.min.js"></script>
|
|
<script src="/static/plugin/meditor/lib/sequence-diagram.min.js"></script>
|
|
<script src="/static/plugin/meditor/lib/jquery.flowchart.min.js"></script>
|
|
<script src="/static/plugin/meditor/editormd.min.js"></script>
|
|
<script src="https://cdn.bootcdn.net/ajax/libs/blueimp-md5/2.18.0/js/md5.js"></script>
|
|
|
|
<script>
|
|
// 初始化静态文件版本号
|
|
localStorage.setItem("version","1.0.2.Release");
|
|
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
|
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
|
</script>
|
|
<!-- 框 架 初 始 化 -->
|
|
<script>
|
|
//定义storage
|
|
let storage = (function () {
|
|
let storage;
|
|
try {
|
|
storage = window.localStorage;
|
|
return storage;
|
|
} catch (exception) {
|
|
return false;
|
|
}
|
|
}());
|
|
layui.use(['laytp','apidoc','popup'], function() {
|
|
let createSignKey = "";
|
|
let apiDomain = "";
|
|
let apiUrl = (apiDomain.length > 0) ? apiDomain : window.location.protocol + "//" + window.location.host;
|
|
|
|
//请求配置
|
|
let nowSetJson = storage.getItem("setJson") ? JSON.parse(storage.getItem("setJson")) : {
|
|
apiUrl: apiUrl,
|
|
createSign: 2,
|
|
headerJson: {token: ""}
|
|
};
|
|
|
|
//渲染所有的meditor编辑器内容
|
|
layui.each($(".meditorContent"), function (key, item) {
|
|
editormd.markdownToHTML($(item).attr('id'), {
|
|
htmlDecode: "style,script,iframe", // you can filter tags decode
|
|
emoji: true,
|
|
taskList: true,
|
|
tex: true, // 默认不解析
|
|
flowChart: true, // 默认不解析
|
|
sequenceDiagram: true, // 默认不解析
|
|
});
|
|
});
|
|
//当表格列数过长时将自动出现滚动条
|
|
var themeColorContext = layui.context.get('theme-color-context');
|
|
$.each($('table'), function (i, item) {
|
|
if($(this).attr('class') !== 'layui-table'){
|
|
$('thead > tr', this).attr('style', 'background-color: '+themeColorContext+';color:white;');
|
|
$(this).prop('outerHTML', '<div style="width: 95%;overflow-x: auto;">' + $(this).prop('outerHTML') + '</div>');
|
|
}
|
|
});
|
|
|
|
//弹窗展示请求配置
|
|
$(document).off("click", ".apiSet").on("click", ".apiSet", function () {
|
|
let layerDiv = layui.layer.open({
|
|
type: 1,
|
|
offset: 'r',
|
|
area: ['600px', '100%'],
|
|
title: "请求配置",
|
|
content: layui.laytpl($("#set").html()).render(nowSetJson),
|
|
shade: 0.1,
|
|
closeBtn: 0,
|
|
shadeClose: false,
|
|
anim: -1,
|
|
skin: 'layer-anim-right',
|
|
move: false,
|
|
success: function (layero, index) {
|
|
$(document).off("click", '#layui-layer-shade' + index).on("click", '#layui-layer-shade' + index, function () {
|
|
var $layero = $('#layui-layer' + index);
|
|
$layero.animate({
|
|
left: $layero.offset().left + $layero.width()
|
|
}, 200, function() {
|
|
let formJson = $('#setDataForm').serializeJSON();
|
|
let headerJson = {
|
|
token: formJson.token
|
|
};
|
|
let keyJson = {};
|
|
if (formJson.hasOwnProperty("header") && formJson.header.hasOwnProperty("key")) {
|
|
keyJson = formJson.header.key;
|
|
}
|
|
let valueJson = {};
|
|
if (formJson.hasOwnProperty("header") && formJson.header.hasOwnProperty("value")) {
|
|
valueJson = formJson.header.value;
|
|
}
|
|
|
|
$.each(keyJson, function (key, item) {
|
|
if(keyJson[key]){
|
|
headerJson[keyJson[key]] = valueJson[key];
|
|
}
|
|
});
|
|
|
|
let setJson = {
|
|
apiUrl: formJson.apiUrl,
|
|
createSign: formJson.createSign,
|
|
headerJson: headerJson
|
|
};
|
|
|
|
nowSetJson = setJson;
|
|
|
|
storage.setItem("setJson", JSON.stringify(setJson));
|
|
|
|
facade.success("保存成功");
|
|
|
|
layer.close(index);
|
|
});
|
|
});
|
|
},
|
|
btn: ['保 存', '取 消'],
|
|
yes: function (index, layero) {
|
|
let formJson = $('#setDataForm').serializeJSON();
|
|
let headerJson = {
|
|
token: formJson.token
|
|
};
|
|
let keyJson = {};
|
|
if (formJson.hasOwnProperty("header") && formJson.header.hasOwnProperty("key")) {
|
|
keyJson = formJson.header.key;
|
|
}
|
|
let valueJson = {};
|
|
if (formJson.hasOwnProperty("header") && formJson.header.hasOwnProperty("value")) {
|
|
valueJson = formJson.header.value;
|
|
}
|
|
|
|
$.each(keyJson, function (key, item) {
|
|
if(keyJson[key]){
|
|
headerJson[keyJson[key]] = valueJson[key];
|
|
}
|
|
});
|
|
|
|
let setJson = {
|
|
apiUrl: formJson.apiUrl,
|
|
createSign: formJson.createSign,
|
|
headerJson: headerJson
|
|
};
|
|
|
|
nowSetJson = setJson;
|
|
|
|
storage.setItem("setJson", JSON.stringify(setJson));
|
|
|
|
facade.success("保存成功");
|
|
|
|
layer.close(index);
|
|
}
|
|
});
|
|
layui.laytpForm.render("#layui-layer" + layerDiv);
|
|
});
|
|
|
|
//追加Header参数
|
|
$(document).off("click", ".add-header-param").on("click", ".add-header-param", function () {
|
|
let clickObj = $(this);
|
|
let template = '<tr>' +
|
|
'<td align="right">' +
|
|
'<input type="text" class="layui-input" name="header[key][]" autocomplete="off" />' +
|
|
'</td>' +
|
|
'<td>' +
|
|
'<input type="text" class="layui-input" name="header[value][]" autocomplete="off" />' +
|
|
'</td>' +
|
|
'<td>' +
|
|
'<a class="layui-btn layui-btn-primary layui-btn-sm layui-icon layui-icon-delete del-header-param"></a>' +
|
|
'</td>' +
|
|
'</tr>';
|
|
clickObj.parent().parent().before(template);
|
|
});
|
|
|
|
//追加数组参数
|
|
$(document).off("click", ".add-array-param").on("click", ".add-array-param", function () {
|
|
let clickObj = $(this);
|
|
let field = clickObj.data('field');
|
|
let template = '<tr>' +
|
|
'<td align="right">' +
|
|
'<input type="text" class="layui-input" name="' + field + '[]" autocomplete="off" />' +
|
|
'</td>' +
|
|
'<td>' +
|
|
'<a class="layui-btn layui-btn-primary layui-btn-sm layui-icon layui-icon-delete del-array-param"></a>' +
|
|
'</td>' +
|
|
'</tr>';
|
|
clickObj.parent().parent().before(template);
|
|
});
|
|
|
|
//删除header参数
|
|
$(document).off("click", ".del-header-param").on("click", ".del-header-param", function () {
|
|
let clickObj = $(this);
|
|
clickObj.parent().parent().remove();
|
|
});
|
|
|
|
//删除array参数
|
|
$(document).off("click", ".del-array-param").on("click", ".del-array-param", function () {
|
|
let clickObj = $(this);
|
|
clickObj.parent().parent().remove();
|
|
});
|
|
|
|
layui.apidoc.setConfigType("yml");
|
|
layui.apidoc.setConfigPath("/static/component/laytp/config/api.config.yml?v=" + localStorage.getItem("version"));
|
|
layui.apidoc.render();
|
|
// 搜索菜单功能添加在这里,不要添加到js组件里面,因为会在子页面进行调用,这里只会在父页面执行
|
|
// 这里被注释的代码,触发搜索菜单要按下回车键
|
|
$(".search-menu").focus(
|
|
function(){
|
|
$(document).on("keydown",
|
|
function(event){
|
|
if( event.keyCode === 13 ){
|
|
window.searchMenuData = [];
|
|
var searchKey = $(".search-menu").val();
|
|
if(searchKey){
|
|
searchMenu(window.menuData, searchKey);
|
|
layui.apidoc.setConfigType("yml");
|
|
layui.apidoc.setConfigPath("/static/component/laytp/config/api.config.yml?v=" + localStorage.getItem("version"));
|
|
var param = layui.apidoc.readConfig();
|
|
param.menu.async = false;
|
|
param.menu.data = window.searchMenuData;
|
|
param.isSearch = true;
|
|
layui.apidoc.render(param);
|
|
}else{
|
|
$("#sideMenu").show();
|
|
$("#searchSideMenu").hide();
|
|
renderMenu();
|
|
}
|
|
}
|
|
}
|
|
);
|
|
$(".search-menu").unbind();
|
|
}
|
|
);
|
|
|
|
// 递归搜索菜单
|
|
window.searchMenu = function(menuData, searchKey){
|
|
searchKey = searchKey.toLowerCase();
|
|
$.each(menuData, function(i, item) {
|
|
var oldTitle = item.title;
|
|
item.title = item.title.toLowerCase();
|
|
if(item.title.indexOf(searchKey) > -1){
|
|
item.title = oldTitle;
|
|
window.searchMenuData.push(item);
|
|
}else{
|
|
item.title = oldTitle;
|
|
if(item.children && item.children.length > 0){
|
|
searchMenu(item.children, searchKey);
|
|
}
|
|
}
|
|
});
|
|
};
|
|
|
|
// 重新渲染菜单
|
|
window.renderMenu = function(){
|
|
$(".search-menu").val('');
|
|
layui.apidoc.setConfigType("yml");
|
|
layui.apidoc.setConfigPath("/static/component/laytp/config/api.config.yml?v=" + localStorage.getItem("version"));
|
|
var config = layui.apidoc.readConfig();
|
|
layui.apidoc.menuRender(config);
|
|
};
|
|
|
|
window.api = {
|
|
testInline: function (id) {
|
|
let route = $("#test_inline_" + id).attr('route');
|
|
let url = nowSetJson.apiUrl + route;
|
|
let method = $("#test_inline_" + id).attr('method');
|
|
|
|
if (nowSetJson.createSign === "1") {
|
|
nowSetJson.headerJson['request-time'] = Date.now();
|
|
nowSetJson.headerJson.sign = api.createSign(nowSetJson.headerJson['request-time']);
|
|
}
|
|
|
|
let formData = new FormData();
|
|
$('#test_inline_'+id).find('input').each(function (i, input) {
|
|
if ($(input).attr('type') == 'file') {
|
|
formData.append($(input).attr('name'), $(input)[0].files[0]);
|
|
} else {
|
|
formData.append($(input).attr('name'), $(input).val())
|
|
}
|
|
});
|
|
|
|
$.ajax({
|
|
url: url,
|
|
headers: nowSetJson.headerJson,
|
|
data: $('#test_inline_'+id).prop('method').toLowerCase() == 'get' ? $('#test_inline_'+id).serialize() : formData,
|
|
type: method,
|
|
dataType: 'json',
|
|
contentType: false,
|
|
processData: false,
|
|
success: function (data, textStatus, xhr) {
|
|
if (typeof data === 'object') {
|
|
var str = JSON.stringify(data, null, 2);
|
|
if(str) {
|
|
$('#response_' + id).html(hljs.highlightAuto(str).value);
|
|
}
|
|
} else {
|
|
$('#response_' + id).html(data || '');
|
|
}
|
|
$('#response_headers_' + id).html('HTTP ' + xhr.status + ' ' + xhr.statusText + '<br/><br/>' + xhr.getAllResponseHeaders());
|
|
$('#response_card_' + id).show();
|
|
facade.success('请求成功');
|
|
},
|
|
error: function (xhr) {
|
|
try {
|
|
var str = JSON.stringify($.parseJSON(xhr.responseText), null, 2);
|
|
} catch (e) {
|
|
var str = xhr.responseText;
|
|
}
|
|
$('#response_headers_' + id).html('HTTP ' + xhr.status + ' ' + xhr.statusText + '<br/><br/>' + xhr.getAllResponseHeaders());
|
|
if(str){
|
|
$('#response_' + id).html(hljs.highlightAuto(str).value);
|
|
}
|
|
$('#response_card_' + id).show();
|
|
facade.error('请求失败');
|
|
}
|
|
});
|
|
return false;
|
|
},
|
|
createSign: function (requestTime) {
|
|
return md5(md5(requestTime) + md5(createSignKey)).toUpperCase();
|
|
},
|
|
};
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|