统一管理父窗口方法,全局参数配置保存

This commit is contained in:
暮光:城中城
2018-12-10 23:10:10 +08:00
parent 8dae6962a6
commit 452062e967
8 changed files with 1141 additions and 1035 deletions

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
</web-app>

View File

@@ -1,406 +1,407 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>接口文档管理系统 - zyplayer</title> <title>接口文档管理系统 - zyplayer</title>
<link rel="shortcut icon" href="webjars/mg-ui/img/api.ico"/> <link rel="shortcut icon" href="webjars/mg-ui/img/api.ico"/>
<link rel="stylesheet" href="webjars/zui/css/zui.min.css" /> <link rel="stylesheet" href="webjars/zui/css/zui.min.css" />
<link rel="stylesheet" href="webjars/zui/lib/dashboard/zui.dashboard.min.css" /> <link rel="stylesheet" href="webjars/zui/lib/dashboard/zui.dashboard.min.css" />
<link rel="stylesheet" href="webjars/zui/lib/tabs/zui.tabs.min.css" /> <link rel="stylesheet" href="webjars/zui/lib/tabs/zui.tabs.min.css" />
<link rel="stylesheet" href="webjars/mg-ui/css/mg-ui.css" /> <link rel="stylesheet" href="webjars/mg-ui/css/mg-ui.css" />
</head> </head>
<body> <body>
<div class="left-body" id="leftContent"> <div class="left-body" id="leftContent">
<div class="left-header"> <div class="left-header">
<span class="logo" id="logoText">zyplayer-doc-swagger</span> <span class="logo" id="logoText">zyplayer-doc-swagger</span>
<i class="icon icon-bars" id="changeContentWidth"></i> <i class="icon icon-bars" id="changeContentWidth"></i>
</div> </div>
<div class="scrollbar-hover left-container"> <div class="scrollbar-hover left-container">
<!-- 样式类可选tree-menu tree-folders tree-chevrons tree-angles --> <!-- 样式类可选tree-menu tree-folders tree-chevrons tree-angles -->
<ul class="tree tree-lines tree-menu projects" data-ride="tree"> <ul class="tree tree-lines tree-menu projects" data-ride="tree">
<li> <li>
<div class="input-group"> <div class="input-group">
<input type="text" class="form-control" id="searchDocInput"> <input type="text" class="form-control" id="searchDocInput">
<span class="input-group-btn"> <span class="input-group-btn">
<button class="btn btn-default" type="button" id="searchDocBt">搜索</button> <button class="btn btn-default" type="button" id="searchDocBt">搜索</button>
</span> </span>
</div> </div>
</li> </li>
<li id="homePageLi"><a href="javascript:void(0)" path=""><i class="icon-home"></i> 控制台</a></li> <li id="homePageLi"><a href="javascript:void(0)" path=""><i class="icon-home"></i> 控制台</a></li>
<li id="tabZpagesNavigationLi"> <li id="tabZpagesNavigationLi">
<a href="#"><i class="icon icon-cogs"></i> 文档管理</a> <a href="#"><i class="icon icon-cogs"></i> 文档管理</a>
<ul> <ul>
<li id="onlineDebugLi1" class="local-storage"><a href="javascript:void(0)" path=""><i class="icon-bug"></i> 在线调试管理</a></li> <li id="onlineDebugLi1" class="local-storage"><a href="javascript:void(0)" path=""><i class="icon-bug"></i> 在线调试管理</a></li>
<li><a href="#" class="page-nav" data-id="docShowConfig" data-href="webjars/zpages/docShowConfig.html" data-icon="icon-cog" data-reload="0"><i class="icon-cog"></i> 文档展示配置</a></li> <li><a href="#" class="page-nav" data-id="docShowConfig" data-href="webjars/zpages/docShowConfig.html" data-icon="icon-cog" data-reload="0"><i class="icon-cog"></i> 文档展示配置</a></li>
<li><a href="#" class="page-nav" data-id="docUrlConfig" data-href="webjars/zpages/docUrlConfig.html" data-icon="icon-list-ul" data-reload="1"><i class="icon-list-ul"></i> 文档地址管理</a></li> <li><a href="#" class="page-nav" data-id="docUrlConfig" data-href="webjars/zpages/docUrlConfig.html" data-icon="icon-list-ul" data-reload="1"><i class="icon-list-ul"></i> 文档地址管理</a></li>
<li><a href="#" class="page-nav" data-id="globalParamConfig" data-href="webjars/zpages/globalParamConfig.html" data-icon="icon-globe" data-reload="1"><i class="icon-globe"></i> 全局参数管理</a></li> <li><a href="#" class="page-nav" data-id="globalParamConfig" data-href="webjars/zpages/globalParamConfig.html" data-icon="icon-globe" data-reload="1"><i class="icon-globe"></i> 全局参数管理</a></li>
<li><a href="#" class="page-nav" data-id="debugDataConfig" data-href="webjars/zpages/debugDataConfig.html" data-icon="icon-bug" data-reload="1"><i class="icon-bug"></i> 调试数据管理</a></li> <li><a href="#" class="page-nav" data-id="debugDataConfig" data-href="webjars/zpages/debugDataConfig.html" data-icon="icon-bug" data-reload="1"><i class="icon-bug"></i> 调试数据管理</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
<div id="apiPathTree"> <div id="apiPathTree">
<ul class="tree tree-lines projects"></ul> <ul class="tree tree-lines projects"></ul>
</div> </div>
</div> </div>
</div> </div>
<div id="resizebleLeftRight" class="ui-resizable-handle mgresizebleW"></div> <div id="resizebleLeftRight" class="ui-resizable-handle mgresizebleW"></div>
<div class="right-container" id="rightContent"> <div class="right-container" id="rightContent">
<div class="right-container" id="rightContentMask"></div> <div class="right-container" id="rightContentMask"></div>
<div class="tab-page tab-home-page"> <div class="tab-page tab-home-page">
<div id="homePageDashboard" class="dashboard" data-height="320"> <div id="homePageDashboard" class="dashboard" data-height="320">
<section class="row"> <section class="row">
<div class="col-md-6 col-sm-6"> <div class="col-md-6 col-sm-6">
<div class="panel" data-id="1"> <div class="panel" data-id="1">
<div class="panel-heading"> <div class="panel-heading">
<div class="title">工具介绍</div> <div class="title">工具介绍</div>
</div> </div>
<div class="panel-body"> <div class="panel-body">
<div class="content about"> <div class="content about">
zyplayer-doc-swagger是swagger文档的管理工具使用简单、解析速度快、走心的设计 zyplayer-doc-swagger是swagger文档的管理工具使用简单、解析速度快、走心的设计
支持多项目同时展示,多种文档目录的展示方案,多种自定义配置,满足各种使用习惯。 支持多项目同时展示,多种文档目录的展示方案,多种自定义配置,满足各种使用习惯。
本项目是完全从头写的所以有任何属性未解析到、UI上有何建议都能及时处理得到。 本项目是完全从头写的所以有任何属性未解析到、UI上有何建议都能及时处理得到。
使用中您有任何的意见和建议都可到源码地址处反馈哦!<br/> 使用中您有任何的意见和建议都可到源码地址处反馈哦!<br/>
源码地址:<a target="_blank" href="https://gitee.com/zyplayer/zyplayer-doc">zyplayer-doc-swagger</a>(还有其他很多功能哦), 源码地址:<a target="_blank" href="https://gitee.com/zyplayer/zyplayer-doc">zyplayer-doc-swagger</a>(还有其他很多功能哦),
前端框架:<a target="_blank" href="http://zui.sexy">zui</a>(很不错), 前端框架:<a target="_blank" href="http://zui.sexy">zui</a>(很不错),
我的网站:<a target="_blank" href="http://kongjianzhou.com">空间轴</a><a target="_blank" href="http://zyplayer.com">自由发挥</a>(都已很久未维护) 我的网站:<a target="_blank" href="http://kongjianzhou.com">空间轴</a><a target="_blank" href="http://zyplayer.com">自由发挥</a>(都已很久未维护)
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
</div> </div>
<div class="tab-page tab-zpages hide"> <div class="tab-page tab-zpages hide">
<div class="tabs" id="rightZpages"></div> <div class="tabs" id="rightZpages"></div>
</div> </div>
<!-- 在线调试配置 --> <!-- 在线调试配置 -->
<div class="tab-page tab-online-debug-page hide"> <div class="tab-page tab-online-debug-page hide">
<div class="title-info"> <div class="title-info">
<div class="text"> <div class="text">
每次点击在线调试的发送请求后都会默认保存一次请求的form、header、body数据到网页的本地存储中以备下次使用在此页面可以管理这些数据。 每次点击在线调试的发送请求后都会默认保存一次请求的form、header、body数据到网页的本地存储中以备下次使用在此页面可以管理这些数据。
一般浏览都有5M左右存储空间如果存储过多有可能会导致部分功能异常请随时清理一下不再使用的。 一般浏览都有5M左右存储空间如果存储过多有可能会导致部分功能异常请随时清理一下不再使用的。
</div> </div>
<button class="btn btn-primary refresh" type="button"><i class="icon icon-refresh"></i> 刷新</button> <button class="btn btn-primary refresh" type="button"><i class="icon icon-refresh"></i> 刷新</button>
<button class="btn btn-primary expand-all" type="button"><i class="icon icon-expand-full"></i> 全部展开</button> <button class="btn btn-primary expand-all" type="button"><i class="icon icon-expand-full"></i> 全部展开</button>
<button class="btn btn-primary collapse-all" type="button"><i class="icon icon-collapse-full"></i> 全部收起</button> <button class="btn btn-primary collapse-all" type="button"><i class="icon icon-collapse-full"></i> 全部收起</button>
<button class="btn btn-danger del-all-param" type="button"><i class="icon icon-remove-sign"></i> 全部删除</button> <button class="btn btn-danger del-all-param" type="button"><i class="icon icon-remove-sign"></i> 全部删除</button>
</div> </div>
<table class="table table-bordered" id="onlineDebugParamTable"> <table class="table table-bordered" id="onlineDebugParamTable">
<thead> <thead>
<tr><th>接口地址</th><th>参数配置</th><th>操作</th></tr> <tr><th>接口地址</th><th>参数配置</th><th>操作</th></tr>
</thead> </thead>
<tbody></tbody> <tbody></tbody>
</table> </table>
</div> </div>
<div class="tab-page tab-document hide"> <div class="tab-page tab-document hide">
<ul class="nav nav-tabs"> <ul class="nav nav-tabs">
<li class="active"><a data-tab href="#tabDocInfo">接口说明</a></li> <li class="active"><a data-tab href="#tabDocInfo">接口说明</a></li>
<li><a data-tab href="#tabOnlineDebug">在线调试</a></li> <li><a data-tab href="#tabOnlineDebug">在线调试</a></li>
<li><a data-tab href="#tabSimulationResult">模拟返回</a></li> <li><a data-tab href="#tabSimulationResult">模拟返回</a></li>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
<div class="tab-pane tab-document-pane active" id="tabDocInfo"> <div class="tab-pane tab-document-pane active" id="tabDocInfo">
<table class="table table-bordered doc-table"> <table class="table table-bordered doc-table">
<tr> <tr>
<td class="info">接口地址</td> <td class="info">接口地址</td>
<td><span id="docUrl" class="label label-warning"></span></td> <td><span id="docUrl" class="label label-warning"></span></td>
</tr> </tr>
<tr> <tr>
<td class="info">说明</td> <td class="info">说明</td>
<td id="docInfo"></td> <td id="docInfo"></td>
</tr> </tr>
<tr> <tr>
<td class="info">请求方式</td> <td class="info">请求方式</td>
<td><span id="docRequestMethod" class="label label-warning"></span></td> <td><span id="docRequestMethod" class="label label-warning"></span></td>
</tr> </tr>
<tr> <tr>
<td class="info">consumes</td> <td class="info">consumes</td>
<td><span id="docConsumes" class="label label-warning"></span></td> <td><span id="docConsumes" class="label label-warning"></span></td>
</tr> </tr>
<tr> <tr>
<td class="info">produces</td> <td class="info">produces</td>
<td><span id="docProduces" class="label label-warning"></span></td> <td><span id="docProduces" class="label label-warning"></span></td>
</tr> </tr>
<tr> <tr>
<td class="info">test</td> <td class="info">test</td>
<td><div id="htmlStrTemp"></div></td> <td><div id="htmlStrTemp"></div></td>
</tr> </tr>
<tr> <tr>
<td class="info">请求参数</td> <td class="info">请求参数</td>
<td> <td>
<ul class="nav nav-secondary gray"> <ul class="nav nav-secondary gray">
<li class="active"><a data-tab href="#docRequestParam">说明</a></li> <li class="active"><a data-tab href="#docRequestParam">说明</a></li>
<li><a data-tab href="#docRequestExample">例子</a></li> <li><a data-tab href="#docRequestExample">例子</a></li>
<!-- <i class="icon icon-info-sign" title='例:@ApiModelProperty(value="用户ID", example = "9527")将example填入对象值里面'></i> --> <!-- <i class="icon icon-info-sign" title='例:@ApiModelProperty(value="用户ID", example = "9527")将example填入对象值里面'></i> -->
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
<div class="tab-pane tab-param-type-pane active" id="docRequestParam"> <div class="tab-pane tab-param-type-pane active" id="docRequestParam">
<table class="table table-bordered"> <table class="table table-bordered">
<thead> <thead>
<tr><th>参数名</th><th>说明</th><th>类型</th><th>参数位置</th><th>是否必填</th></tr> <tr><th>参数名</th><th>说明</th><th>类型</th><th>参数位置</th><th>是否必填</th></tr>
</thead> </thead>
<tbody></tbody> <tbody></tbody>
</table> </table>
</div> </div>
<div class="tab-pane tab-param-type-pane" id="docRequestExample"> <div class="tab-pane tab-param-type-pane" id="docRequestExample">
<table class="table table-bordered"> <table class="table table-bordered">
<thead> <thead>
<tr><th>参数名</th><th>说明</th><th>类型</th><th>参数位置</th><th>是否必填</th></tr> <tr><th>参数名</th><th>说明</th><th>类型</th><th>参数位置</th><th>是否必填</th></tr>
</thead> </thead>
<tbody></tbody> <tbody></tbody>
</table> </table>
</div> </div>
</div> </div>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="info">响应Model</td> <td class="info">响应Model</td>
<td> <td>
<ul class="nav nav-secondary gray"> <ul class="nav nav-secondary gray">
<li class="active"><a data-tab href="#docResponseModel">说明</a></li> <li class="active"><a data-tab href="#docResponseModel">说明</a></li>
<li><a data-tab href="#docResponseExample">例子</a></li> <li><a data-tab href="#docResponseExample">例子</a></li>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
<div class="tab-pane tab-param-type-pane active" id="docResponseModel"> <div class="tab-pane tab-param-type-pane active" id="docResponseModel">
<table class="table table-bordered"> <table class="table table-bordered">
<thead> <thead>
<tr><th>状态码</th><th>说明</th></tr> <tr><th>状态码</th><th>说明</th></tr>
</thead> </thead>
<tbody></tbody> <tbody></tbody>
</table> </table>
</div> </div>
<div class="tab-pane tab-param-type-pane" id="docResponseExample"> <div class="tab-pane tab-param-type-pane" id="docResponseExample">
<table class="table table-bordered"> <table class="table table-bordered">
<thead> <thead>
<tr><th>状态码</th><th>说明</th></tr> <tr><th>状态码</th><th>说明</th></tr>
</thead> </thead>
<tbody></tbody> <tbody></tbody>
</table> </table>
</div> </div>
</div> </div>
</td> </td>
</tr> </tr>
</table> </table>
</div> </div>
<div class="tab-pane tab-document-pane" id="tabOnlineDebug"> <div class="tab-pane tab-document-pane" id="tabOnlineDebug">
<div class="post-url-box"> <div class="post-url-box">
<div class="input-group"> <div class="input-group">
<!-- <div class="input-group-btn"> <!-- <div class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"> <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<span class="options">参数模板</span> <span class="caret"></span> <span class="options">参数模板</span> <span class="caret"></span>
</button> </button>
<ul class="dropdown-menu pull-left" role="menu"> <ul class="dropdown-menu pull-left" role="menu">
<li><a href="javascript:void(0)">默认参数</a></li> <li><a href="javascript:void(0)">默认参数</a></li>
<li><a href="javascript:void(0);" class="save-request-template">+保存模板</a></li> <li><a href="javascript:void(0);" class="save-request-template">+保存模板</a></li>
</ul> </ul>
</div> --> </div> -->
<div class="input-group-btn" id="debugRequstType"> <div class="input-group-btn" id="debugRequstType">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"> <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<span class="options">GET</span> <span class="caret"></span> <span class="options">GET</span> <span class="caret"></span>
</button> </button>
<ul class="dropdown-menu pull-left" role="menu"> <ul class="dropdown-menu pull-left" role="menu">
<li><a href="javascript:void(0);">GET</a></li> <li><a href="javascript:void(0);">GET</a></li>
<li><a href="javascript:void(0);">POST</a></li> <li><a href="javascript:void(0);">POST</a></li>
<li><a href="javascript:void(0);">PUT</a></li> <li><a href="javascript:void(0);">PUT</a></li>
<li><a href="javascript:void(0);">HEAD</a></li> <li><a href="javascript:void(0);">HEAD</a></li>
<li><a href="javascript:void(0);">PATCH</a></li> <li><a href="javascript:void(0);">PATCH</a></li>
<li><a href="javascript:void(0);">DELETE</a></li> <li><a href="javascript:void(0);">DELETE</a></li>
<li><a href="javascript:void(0);">OPTIONS</a></li> <li><a href="javascript:void(0);">OPTIONS</a></li>
<li><a href="javascript:void(0);">TRACE</a></li> <li><a href="javascript:void(0);">TRACE</a></li>
</ul> </ul>
</div> </div>
<input type="text" class="form-control" id="postUrlInput" placeholder="请求的完整地址"> <input type="text" class="form-control" id="postUrlInput" placeholder="请求的完整地址">
<span class="input-group-btn"> <span class="input-group-btn">
<button class="btn btn-default send-request" type="button">发送请求 <i class="icon icon-spin icon-spinner-snake hide"></i></button> <button class="btn btn-default send-request" type="button">发送请求 <i class="icon icon-spin icon-spinner-snake hide"></i></button>
</span> </span>
</div> </div>
</div> </div>
<div class="param-response-box"> <div class="param-response-box">
<div class="param-box"> <div class="param-box">
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading" id="headingOne"> <div class="panel-heading" id="headingOne">
<h4 class="panel-title"> <h4 class="panel-title">
<a data-toggle="collapse" href="#tabParamHeader">请求头</a> <a data-toggle="collapse" href="#tabParamHeader">请求头</a>
<label><input type="checkbox" id="bulkEditHeaderCheck" value="1"> 批量编辑</label> <label><input type="checkbox" id="bulkEditHeaderCheck" value="1"> 批量编辑</label>
</h4> </h4>
</div> </div>
<div id="tabParamHeader" class="panel-collapse collapse in"> <div id="tabParamHeader" class="panel-collapse collapse in">
<form id="requestHeaderForm"> <form id="requestHeaderForm">
<table class="table table-bordered param-table"> <table class="table table-bordered param-table">
<tbody> <tbody>
<tr class="base"> <tr class="base">
<td><input type="text" class="form-control" name="paramName" placeholder=""></td> <td><input type="text" class="form-control" name="paramName" placeholder=""></td>
<td><input type="text" class="form-control" name="paramValue" placeholder=""></td> <td><input type="text" class="form-control" name="paramValue" placeholder=""></td>
<td><i class="icon-times"></i></td> <td><i class="icon-times"></i></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<textarea class="hide form-control" id="bulkEditHeader" rows="6" placeholder="批量编辑请求头,使用英文冒号分隔,例:&#13;&#10;key:value&#13;&#10;key:value"></textarea> <textarea class="hide form-control" id="bulkEditHeader" rows="6" placeholder="批量编辑请求头,使用英文冒号分隔,例:&#13;&#10;key:value&#13;&#10;key:value"></textarea>
</form> </form>
</div> </div>
</div> </div>
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading">
<h4 class="panel-title"> <h4 class="panel-title">
<a data-toggle="collapse" href="#tabParamBody">请求参数</a> <a data-toggle="collapse" href="#tabParamBody">请求参数</a>
</h4> </h4>
</div> </div>
<div id="tabParamBody" class="panel-collapse collapse in"> <div id="tabParamBody" class="panel-collapse collapse in">
<form id="requestParamForm"> <form id="requestParamForm">
<ul class="nav nav-secondary"> <ul class="nav nav-secondary">
<li class="active"><a data-tab href="#tabParamTypeForm">表单</a></li> <li class="active"><a data-tab href="#tabParamTypeForm">表单</a></li>
<li><a data-tab href="#tabParamTypeBody">数据流</a></li> <li><a data-tab href="#tabParamTypeBody">数据流</a></li>
<li class="form-to-url"><label><input type="checkbox" name="formToUrl" value="1"> 参数拼在URL后面发送</label></li> <li class="form-to-url"><label><input type="checkbox" name="formToUrl" value="1"> 参数拼在URL后面发送</label></li>
<li class="form-to-url"><label><input type="checkbox" id="bulkEditFormCheck" value="1"> 批量编辑</label></li> <li class="form-to-url"><label><input type="checkbox" id="bulkEditFormCheck" value="1"> 批量编辑</label></li>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
<div class="tab-pane tab-param-type-pane active" id="tabParamTypeForm"> <div class="tab-pane tab-param-type-pane active" id="tabParamTypeForm">
<table class="table table-bordered param-table"> <table class="table table-bordered param-table">
<tbody> <tbody>
<tr class="base"> <tr class="base">
<td><input type="text" class="form-control" name="paramName" placeholder=""></td> <td><input type="text" class="form-control" name="paramName" placeholder=""></td>
<td><input type="text" class="form-control" name="paramValue" placeholder=""></td> <td><input type="text" class="form-control" name="paramValue" placeholder=""></td>
<td><i class="icon-times"></i></td> <td><i class="icon-times"></i></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<textarea class="hide form-control" id="bulkEditForm" rows="6" placeholder="批量编辑表单参数,使用英文冒号分隔,例:&#13;&#10;key:value&#13;&#10;key:value"></textarea> <textarea class="hide form-control" id="bulkEditForm" rows="6" placeholder="批量编辑表单参数,使用英文冒号分隔,例:&#13;&#10;key:value&#13;&#10;key:value"></textarea>
</div> </div>
<div class="tab-pane tab-param-type-pane" id="tabParamTypeBody"> <div class="tab-pane tab-param-type-pane" id="tabParamTypeBody">
<textarea class="form-control" name="paramBody" rows="6" placeholder=""></textarea> <textarea class="form-control" name="paramBody" rows="6" placeholder=""></textarea>
</div> </div>
</div> </div>
</form> </form>
</div> </div>
</div> </div>
</div> </div>
<div class="response-box"> <div class="response-box">
<ul class="nav nav-secondary"> <ul class="nav nav-secondary">
<li class="info"><span>结果集</span></li> <li class="info"><span>结果集</span></li>
<li class="active"><a data-tab href="#tabResponseBody">Body</a></li> <li class="active"><a data-tab href="#tabResponseBody">Body</a></li>
<li class="local-storage"><a data-tab href="#tabResponseCookie">Cookie</a></li> <li class="local-storage"><a data-tab href="#tabResponseCookie">Cookie</a></li>
<li><a data-tab href="#tabResponseHeader">Header</a></li> <li><a data-tab href="#tabResponseHeader">Header</a></li>
<li class="right"><span>状态:<i id="httpRequestStatus">200</i>,耗时:<i id="httpRequestTime">0ms</i></span></li> <li class="right"><span>状态:<i id="httpRequestStatus">200</i>,耗时:<i id="httpRequestTime">0ms</i></span></li>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
<div class="tab-pane tab-response-pane active" id="tabResponseBody"> <div class="tab-pane tab-response-pane active" id="tabResponseBody">
<!-- <textarea class="form-control" id="responseBodyTextArea" rows="20" placeholder=""></textarea> --> <!-- <textarea class="form-control" id="responseBodyTextArea" rows="20" placeholder=""></textarea> -->
<div id="responseBodyJsonDiv"></div> <div id="responseBodyJsonDiv"></div>
</div> </div>
<div class="tab-pane tab-response-pane" id="tabResponseCookie"> <div class="tab-pane tab-response-pane" id="tabResponseCookie">
<table class="table table-bordered param-table"> <table class="table table-bordered param-table">
<thead> <thead>
<tr> <tr>
<th>名字</th> <th>名字</th>
<th></th> <th></th>
</tr> </tr>
</thead> </thead>
<tbody></tbody> <tbody></tbody>
</table> </table>
</div> </div>
<div class="tab-pane tab-response-pane" id="tabResponseHeader"> <div class="tab-pane tab-response-pane" id="tabResponseHeader">
<table class="table table-bordered param-table"> <table class="table table-bordered param-table">
<thead> <thead>
<tr> <tr>
<th>名字</th> <th>名字</th>
<th></th> <th></th>
</tr> </tr>
</thead> </thead>
<tbody></tbody> <tbody></tbody>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="tab-pane tab-document-pane" id="tabSimulationResult"> <div class="tab-pane tab-document-pane" id="tabSimulationResult">
<table class="table table-bordered doc-table"> <table class="table table-bordered doc-table">
<tr> <tr>
<td class="info">接口地址</td> <td class="info">接口地址</td>
<td><span id="simulationResultUrl" class="label label-warning"></span></td> <td><span id="simulationResultUrl" class="label label-warning"></span></td>
</tr> </tr>
<tr> <tr>
<td class="info">测试地址</td> <td class="info">测试地址</td>
<td><a id="simulationResultUrlTest" href="" target="_blank"></a> <i class="icon icon-info-sign" title='需要被访问项目导入zyplayer-doc包才能使用'></i></td> <td><a id="simulationResultUrlTest" href="" target="_blank"></a> <i class="icon icon-info-sign" title='需要被访问项目导入zyplayer-doc包才能使用'></i></td>
</tr> </tr>
<tr> <tr>
<td class="info">返回内容</td> <td class="info">返回内容</td>
<td><textarea id="simulationResultText" class="form-control" rows="10"></textarea></td> <td><textarea id="simulationResultText" class="form-control" rows="10"></textarea></td>
</tr> </tr>
<tr> <tr>
<td class="info">操作</td> <td class="info">操作</td>
<td> <td>
<button type="button" class="btn btn-primary" id="simulationResultSubmit">提交模拟返回值</button> <button type="button" class="btn btn-primary" id="simulationResultSubmit">提交模拟返回值</button>
</td> </td>
</tr> </tr>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- 导出文档 --> <!-- 导出文档 -->
<div class="modal fade" id="exportDocumentModal"> <div class="modal fade" id="exportDocumentModal">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal"> <button type="button" class="close" data-dismiss="modal">
<span aria-hidden="true">×</span><span class="sr-only">关闭</span> <span aria-hidden="true">×</span><span class="sr-only">关闭</span>
</button> </button>
<h4 class="modal-title">导出文档</h4> <h4 class="modal-title">导出文档</h4>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div class="alert alert-danger hidden"> <div class="alert alert-danger hidden">
1、请到 <a target="_blank" href="https://gitee.com/zyplayer/zyplayer-doc">源码处下载</a>《对外文档模板.zip》解压<br/> 1、请到 <a target="_blank" href="https://gitee.com/zyplayer/zyplayer-doc">源码处下载</a>《对外文档模板.zip》解压<br/>
2、复制以下文本内容覆盖至 /js/mg-ui-data.js 文件内<br/> 2、复制以下文本内容覆盖至 /js/mg-ui-data.js 文件内<br/>
3、然后双击打开目录下的document.html 即可看到导出的文档 3、然后双击打开目录下的document.html 即可看到导出的文档
</div> </div>
<div class="modal-table-box"> <div class="modal-table-box">
<ul id="exportDocumentUl" class="choise"></ul> <ul id="exportDocumentUl" class="choise"></ul>
<textarea id="exportDocumentText" class="form-control hidden"></textarea> <textarea id="exportDocumentText" class="form-control hidden"></textarea>
</div> </div>
<div align="center" class="bottom-box"> <div align="center" class="bottom-box">
<button class="btn btn-primary" type="button" id="doExportBtn">确认导出</button> <button class="btn btn-primary" type="button" id="doExportBtn">确认导出</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- 选择展示的项目 --> <!-- 选择展示的项目 -->
<div class="modal fade" id="choiseDocModal"> <div class="modal fade" id="choiseDocModal">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h4 class="modal-title">选择需要展示的文档</h4> <h4 class="modal-title">选择需要展示的文档</h4>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div class="alert alert-danger">不选择则展示全部,展示接口过多会影响效率,建议只展示想看的文档</div> <div class="alert alert-danger">不选择则展示全部,展示接口过多会影响效率,建议只展示想看的文档</div>
<div class="modal-table-box"> <div class="modal-table-box">
<ul id="choiseDocListUl" class="choise"></ul> <ul id="choiseDocListUl" class="choise"></ul>
</div> </div>
<div align="center" class="bottom-box"> <div align="center" class="bottom-box">
<button type="button" class="btn btn-primary" id="choiseDocBtn">  确定  </button> <button type="button" class="btn btn-primary" id="choiseDocBtn">  确定  </button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</body> </body>
<script type="text/javascript" src="webjars/mg-ui/js/jquery-3.1.0.min.js"></script> <script type="text/javascript" src="webjars/mg-ui/js/jquery-3.1.0.min.js"></script>
<script type="text/javascript" src="webjars/zui/js/zui.min.js"></script> <script type="text/javascript" src="webjars/zui/js/zui.min.js"></script>
<script type="text/javascript" src="webjars/zui/lib/tabs/zui.tabs.min.js"></script> <script type="text/javascript" src="webjars/zui/lib/tabs/zui.tabs.min.js"></script>
<script type="text/javascript" src="webjars/zui/lib/dashboard/zui.dashboard.min.js"></script> <script type="text/javascript" src="webjars/zui/lib/dashboard/zui.dashboard.min.js"></script>
<!-- <!--
<script type="text/javascript" src="webjars/mg-ui/js/mg-ui.min.js"></script> <script type="text/javascript" src="webjars/mg-ui/js/mg-ui.min.js"></script>
--> -->
<script type="text/javascript" src="webjars/mg-ui/js/formatjson.js"></script> <script type="text/javascript" src="webjars/mg-ui/js/formatjson.js"></script>
<script type="text/javascript" src="webjars/mg-ui/js/toast.js"></script> <script type="text/javascript" src="webjars/mg-ui/js/toast.js"></script>
<script type="text/javascript" src="webjars/mg-ui/js/common.js"></script> <script type="text/javascript" src="webjars/mg-ui/js/common.js"></script>
<script type="text/javascript" src="webjars/mg-ui/js/mgResizable.js"></script> <script type="text/javascript" src="webjars/mg-ui/js/mgResizable.js"></script>
<script type="text/javascript" src="webjars/mg-ui/js/mg-ui-tree.js"></script> <script type="text/javascript" src="webjars/mg-ui/js/mg-ui-tree.js"></script>
<script type="text/javascript" src="webjars/mg-ui/js/mg-ui-tag.js"></script> <script type="text/javascript" src="webjars/mg-ui/js/mg-ui-tag.js"></script>
<script type="text/javascript" src="webjars/mg-ui/js/mg-ui-debug.js"></script> <script type="text/javascript" src="webjars/mg-ui/js/mg-ui-debug.js"></script>
<script type="text/javascript" src="webjars/mg-ui/js/mg-ui.js"></script> <script type="text/javascript" src="webjars/mg-ui/js/mg-ui-export.js"></script>
</html> <script type="text/javascript" src="webjars/mg-ui/js/mg-ui.js"></script>
</html>

View File

@@ -1,314 +1,322 @@
/** /**
* 一些公用方法 * 一些公用方法
* @author 暮光:城中城 * @author 暮光:城中城
* @since 2017年5月7日 * @since 2017年5月7日
*/ */
function serialize(value) { function serialize(value) {
if (typeof value === 'string') { if (typeof value === 'string') {
return value; return value;
} }
return JSON.stringify(value); return JSON.stringify(value);
} }
function deserialize(value) { function deserialize(value) {
if (typeof value !== 'string' || isEmpty(value)) { if (typeof value !== 'string' || isEmpty(value)) {
return undefined; return undefined;
} }
try { try {
return JSON.parse(value); return JSON.parse(value);
} catch (e) { } catch (e) {
try { try {
return eval('(' + value + ')');// 处理变态的单双引号共存字符串 return eval('(' + value + ')');// 处理变态的单双引号共存字符串
} catch (e) { } catch (e) {
return value || undefined; return value || undefined;
} }
} }
} }
function validateResult(result) { function validateResult(result) {
if(result.errCode == 200) { if(result.errCode == 200) {
return true; return true;
} else { } else {
Toast.error(result.errMsg); Toast.error(result.errMsg);
} }
return false; return false;
} }
function getNowDate() { function getNowDate() {
var date = new Date(); var date = new Date();
var month = date.getMonth() + 1; var month = date.getMonth() + 1;
var strDate = date.getDate(); var strDate = date.getDate();
if (month >= 1 && month <= 9) { if (month >= 1 && month <= 9) {
month = "0" + month; month = "0" + month;
} }
if (strDate >= 0 && strDate <= 9) { if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate; strDate = "0" + strDate;
} }
var currentdate = date.getFullYear() + "-" + month + "-" + strDate; var currentdate = date.getFullYear() + "-" + month + "-" + strDate;
return currentdate; return currentdate;
} }
function getNowTime() { function getNowTime() {
var date = new Date(); var date = new Date();
var hours = date.getHours(); var hours = date.getHours();
var minutes = date.getMinutes(); var minutes = date.getMinutes();
var seconds = date.getSeconds(); var seconds = date.getSeconds();
if (hours >= 1 && hours <= 9) { if (hours >= 1 && hours <= 9) {
hours = "0" + hours; hours = "0" + hours;
} }
if (minutes >= 0 && minutes <= 9) { if (minutes >= 0 && minutes <= 9) {
minutes = "0" + minutes; minutes = "0" + minutes;
} }
if (seconds >= 0 && seconds <= 9) { if (seconds >= 0 && seconds <= 9) {
seconds = "0" + seconds; seconds = "0" + seconds;
} }
var currentdate = hours + ":" + minutes + ":" + seconds; var currentdate = hours + ":" + minutes + ":" + seconds;
return currentdate; return currentdate;
} }
function getNowDateTime() { function getNowDateTime() {
var currentdate = getNowDate() + " " + getNowTime(); var currentdate = getNowDate() + " " + getNowTime();
return currentdate; return currentdate;
} }
/** /**
* 返回不为空的字符串为空返回def * 返回不为空的字符串为空返回def
*/ */
function getNotEmptyStr(str, def) { function getNotEmptyStr(str, def) {
if (isEmpty(str)) { if (isEmpty(str)) {
return isEmpty(def) ? "" : def; return isEmpty(def) ? "" : def;
} }
return str; return str;
} }
/** /**
* 是否是空对象 * 是否是空对象
* @param obj * @param obj
* @returns * @returns
*/ */
function isEmptyObject(obj){ function isEmptyObject(obj){
return $.isEmptyObject(obj); return $.isEmptyObject(obj);
} }
/** /**
* 是否是空字符串 * 是否是空字符串
* @param str * @param str
* @returns * @returns
*/ */
function isEmpty(str){ function isEmpty(str){
return (str == "" || str == null || str == undefined); return (str == "" || str == null || str == undefined);
} }
/** /**
* 是否不是空字符串 * 是否不是空字符串
* @param str * @param str
* @returns * @returns
*/ */
function isNotEmpty(str){ function isNotEmpty(str){
return !isEmpty(str); return !isEmpty(str);
} }
/** /**
* 数组转字符串,使用空格分隔 * 数组转字符串,使用空格分隔
* @param array * @param array
* @returns * @returns
*/ */
function arrToString(array){ function arrToString(array){
var temStr = ""; var temStr = "";
if(isEmpty(array)){ if(isEmpty(array)){
return temStr; return temStr;
} }
array.forEach(function(e){ array.forEach(function(e){
if(isNotEmpty(temStr)) { if(isNotEmpty(temStr)) {
temStr += " "; temStr += " ";
} }
temStr += e; temStr += e;
}); });
return temStr; return temStr;
} }
/** /**
* 数组array中是否包含str字符串 * 数组array中是否包含str字符串
* @param array * @param array
* @param str * @param str
* @returns * @returns
*/ */
function haveString(array, str){ function haveString(array, str){
if(isEmpty(array)) { if(isEmpty(array)) {
return false; return false;
} }
for (var i = 0; i < array.length; i++) { for (var i = 0; i < array.length; i++) {
if(array[i] == str) { if(array[i] == str) {
return true; return true;
} }
} }
return false; return false;
} }
/** /**
* 直接返回对象的第一个属性 * 直接返回对象的第一个属性
* @param data * @param data
* @returns * @returns
*/ */
function getObjectFirstAttribute(data) { function getObjectFirstAttribute(data) {
for ( var key in data) { for ( var key in data) {
return data[key]; return data[key];
} }
} }
/** /**
* 如果对象只有一个属性则返回第一个属性否则返回null * 如果对象只有一个属性则返回第一个属性否则返回null
* @param data * @param data
* @returns * @returns
*/ */
function getObjectFirstAttributeIfOnly(data) { function getObjectFirstAttributeIfOnly(data) {
var len = 0, value = ""; var len = 0, value = "";
for ( var key in data) { for ( var key in data) {
if (++len > 1) { if (++len > 1) {
return null; return null;
} }
value = data[key]; value = data[key];
} }
return value; return value;
} }
/** /**
* ajax处理事件模板 * ajax处理事件模板
* *
* @url 后台处理的url即action * @url 后台处理的url即action
* @dataSentType 数据发送的方式有postget方式 * @dataSentType 数据发送的方式有postget方式
* @dataReceiveType 数据接收格式有html json text等 * @dataReceiveType 数据接收格式有html json text等
* @paramsStr 传入后台的参数 * @paramsStr 传入后台的参数
* @successFunction ajax成功后执行的函数名 ajaxTemp("", "GET", "html", {}, function(){}, * @successFunction ajax成功后执行的函数名 ajaxTemp("", "GET", "html", {}, function(){},
* function(){}, ""); * function(){}, "");
*/ */
function ajaxTemp(url, dataSentType, dataReceiveType, paramsStr, successFunction, errorFunction, completeFunction, id) { function ajaxTemp(url, dataSentType, dataReceiveType, paramsStr, successFunction, errorFunction, completeFunction, id) {
$.ajax({ $.ajax({
url : url, // 后台处理程序 url : url, // 后台处理程序
sync : false, sync : false,
type : dataSentType, // 数据发送方式 type : dataSentType, // 数据发送方式
dataType : dataReceiveType, // 接受数据格式 dataType : dataReceiveType, // 接受数据格式
data : eval(paramsStr), data : eval(paramsStr),
contentType : "application/x-www-form-urlencoded; charset=UTF-8", contentType : "application/x-www-form-urlencoded; charset=UTF-8",
success : function(msg) { success : function(msg) {
if(typeof successFunction == "function") { if(typeof successFunction == "function") {
successFunction(msg,id); successFunction(msg,id);
} }
}, },
beforeSend : function() { beforeSend : function() {
}, },
complete : function(msg) { complete : function(msg) {
if(typeof completeFunction == "function") { if(typeof completeFunction == "function") {
completeFunction(msg,id); completeFunction(msg,id);
} }
}, },
error : function(msg) { error : function(msg) {
if(typeof errorFunction == "function") { if(typeof errorFunction == "function") {
errorFunction(msg,id); errorFunction(msg,id);
} }
} }
}); });
} }
/** /**
* 获取cookie * 获取cookie
* @param name * @param name
* @returns * @returns
*/ */
function getCookie(name) { function getCookie(name) {
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg)){ if(arr=document.cookie.match(reg)){
return unescape(arr[2]); return unescape(arr[2]);
} }
return null; return null;
} }
/** /**
* 字符串格式化 * 字符串格式化
*/ */
String.prototype.format = function(args) { String.prototype.format = function(args) {
if (arguments.length > 0) { if (arguments.length > 0) {
var result = this; var result = this;
if (arguments.length == 1 && typeof (args) == "object") { if (arguments.length == 1 && typeof (args) == "object") {
for ( var key in args) { for ( var key in args) {
var reg = new RegExp("({" + key + "})", "g"); var reg = new RegExp("({" + key + "})", "g");
result = result.replace(reg, args[key]); result = result.replace(reg, args[key]);
} }
} else { } else {
for (var i = 0; i < arguments.length; i++) { for (var i = 0; i < arguments.length; i++) {
if (arguments[i] == undefined) { if (arguments[i] == undefined) {
return ""; return "";
} else { } else {
var reg = new RegExp("({[" + i + "]})", "g"); var reg = new RegExp("({[" + i + "]})", "g");
result = result.replace(reg, arguments[i]); result = result.replace(reg, arguments[i]);
} }
} }
} }
return result; return result;
} else { } else {
return this; return this;
} }
} }
String.prototype.endWith = function(str) { String.prototype.endWith = function(str) {
if (str == null || str == "" || this.length == 0 || str.length > this.length) { if (str == null || str == "" || this.length == 0 || str.length > this.length) {
return false; return false;
} }
return (this.substring(this.length - str.length) == str); return (this.substring(this.length - str.length) == str);
}; };
String.prototype.startWith = function(str) { String.prototype.startWith = function(str) {
if (str == null || str == "" || this.length == 0 || str.length > this.length) { if (str == null || str == "" || this.length == 0 || str.length > this.length) {
return false; return false;
} }
return (this.substr(0, str.length) == str); return (this.substr(0, str.length) == str);
}; };
/** /**
* 获取数据,异步的操作 * 获取数据,异步的操作
*/ */
function getStorage(key, success, fail) { function getStorage(key, success, fail) {
var start = (typeof urlBase === 'string') ? urlBase : ''; var start = (typeof urlBase === 'string') ? urlBase : '';
ajaxTemp(start + "swagger-mg-ui/storage/data", "get", "json", {key: key}, function(json){ ajaxTemp(start + "swagger-mg-ui/storage/data", "get", "json", {key: key}, function(json){
if(json.errCode == 200) { if(json.errCode == 200) {
if(typeof success == "function") { if(typeof success == "function") {
var result = deserialize(json.data); var result = deserialize(json.data);
success(result); success(result);
} }
} else { } else {
if(typeof fail == "function") { if(typeof fail == "function") {
fail(); fail();
} }
} }
}, function(msg){ }, function(msg){
if(typeof fail == "function") { if(typeof fail == "function") {
fail(); fail();
} }
}); });
} }
/** /**
* 存储数据,异步的操作 * 存储数据,异步的操作
*/ */
function setStorage(key, value, success, fail) { function setStorage(key, value, success, fail) {
value = $.zui.store.serialize(value); value = $.zui.store.serialize(value);
var start = (typeof urlBase === 'string') ? urlBase : ''; var start = (typeof urlBase === 'string') ? urlBase : '';
ajaxTemp(start + "swagger-mg-ui/storage/data", "post", "json", {key: key, value: value}, function(json){ ajaxTemp(start + "swagger-mg-ui/storage/data", "post", "json", {key: key, value: value}, function(json){
if(json.errCode == 200) { if(json.errCode == 200) {
if(typeof success == "function") { if(typeof success == "function") {
success(); success();
} }
} else { } else {
if(typeof fail == "function") { if(typeof fail == "function") {
fail(getNotEmptyStr(json.errMsg)); fail(getNotEmptyStr(json.errMsg));
} }
} }
}, function(msg){ }, function(msg){
if(typeof fail == "function") { if(typeof fail == "function") {
fail(""); fail("");
} }
console.log("存储数据到服务器失败,请检查"); console.log("存储数据到服务器失败,请检查");
}); });
}
/**
* 获取父窗口的exports
* @returns
*/
function getExport(){
return window.parent.window.exports;
} }

View File

@@ -0,0 +1,5 @@
var cacheKeys = {
userSettings: 'userSettings',
swaggerResourcesList: 'swagger-resources-list',
globalParamList: 'zyplayer-doc-global-param-list',
}

View File

@@ -0,0 +1,14 @@
var exports = {
regeneratePathTree: function(){
// 定义在mg-ui.js用于重新生成文档树目录
regeneratePathTree();
},
updateUserSettings: function(setting){
// 定义在mg-ui.js用于更新用户设置
updateUserSettings(setting);
},
exportDocument: function(){
// 定义在mg-ui.js用于打开导出文档框
exportDocument();
}
};

View File

@@ -1,139 +1,140 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>文档展示配置</title> <title>文档展示配置</title>
<link rel="stylesheet" type="text/css" href="../zui/css/zui.min.css"> <link rel="stylesheet" type="text/css" href="../zui/css/zui.min.css">
</head> </head>
<body> <body>
<div id="app"> <div id="app">
<table class="table table-bordered setting-table"> <table class="table table-bordered setting-table">
<thead> <thead>
<tr> <tr>
<td style="width: 150px;">参数名</td> <td style="width: 150px;">参数名</td>
<td style="width: 300px;">参数值</td> <td style="width: 300px;">参数值</td>
<td>说明</td> <td>说明</td>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td class="info">目录展示方式</td> <td class="info">目录展示方式</td>
<td> <td>
<label><input type="radio" name="catalogShowType" value="1" v-model="catalogShowType">分路径展示</label> <label><input type="radio" name="catalogShowType" value="1" v-model="catalogShowType">分路径展示</label>
<label><input type="radio" name="catalogShowType" value="2" v-model="catalogShowType">分标签展示</label> <label><input type="radio" name="catalogShowType" value="2" v-model="catalogShowType">分标签展示</label>
</td> </td>
<td>分路径:/api/data/getDataList 分标签:/api└/data└/getDateList└post└get</td> <td>分路径:/api/data/getDataList 分标签:/api└/data└/getDateList└post└get</td>
</tr> </tr>
<tr> <tr>
<td class="info">树形菜单展示方式</td> <td class="info">树形菜单展示方式</td>
<td> <td>
<label><input type="radio" name="treeShowType" value="1" v-model="treeShowType">直角</label> <label><input type="radio" name="treeShowType" value="1" v-model="treeShowType">直角</label>
<label><input type="radio" name="treeShowType" value="2" v-model="treeShowType">导航</label> <label><input type="radio" name="treeShowType" value="2" v-model="treeShowType">导航</label>
<label><input type="radio" name="treeShowType" value="3" v-model="treeShowType">加减</label> <label><input type="radio" name="treeShowType" value="3" v-model="treeShowType">加减</label>
<label><input type="radio" name="treeShowType" value="4" v-model="treeShowType">文件夹</label> <label><input type="radio" name="treeShowType" value="4" v-model="treeShowType">文件夹</label>
<label><input type="radio" name="treeShowType" value="5" v-model="treeShowType">V型</label> <label><input type="radio" name="treeShowType" value="5" v-model="treeShowType">V型</label>
</td> </td>
<td>请自行修改体验</td> <td>请自行修改体验</td>
</tr> </tr>
<tr> <tr>
<td class="info">是否展示字段的类型</td> <td class="info">是否展示字段的类型</td>
<td> <td>
<label><input type="radio" name="showParamType" value="1" v-model="showParamType"></label> <label><input type="radio" name="showParamType" value="1" v-model="showParamType"></label>
<label><input type="radio" name="showParamType" value="0" v-model="showParamType"></label> <label><input type="radio" name="showParamType" value="0" v-model="showParamType"></label>
</td> </td>
<td>文档中是否展示类型:"reference": "(boolean)"</td> <td>文档中是否展示类型:"reference": "(boolean)"</td>
</tr> </tr>
<tr> <tr>
<td class="info">仅使用上次请求参数</td> <td class="info">仅使用上次请求参数</td>
<td> <td>
<label><input type="radio" name="onlyUseLastParam" value="1" v-model="onlyUseLastParam"></label> <label><input type="radio" name="onlyUseLastParam" value="1" v-model="onlyUseLastParam"></label>
<label><input type="radio" name="onlyUseLastParam" value="0" v-model="onlyUseLastParam"></label> <label><input type="radio" name="onlyUseLastParam" value="0" v-model="onlyUseLastParam"></label>
</td> </td>
<td>每个接口都使用最后一次请求的header、form、body参数参数列表有但上一次请求没有使用的则不会展示在请求参数里面从未请求过则展示所有参数</td> <td>每个接口都使用最后一次请求的header、form、body参数参数列表有但上一次请求没有使用的则不会展示在请求参数里面从未请求过则展示所有参数</td>
</tr> </tr>
<tr> <tr>
<td class="info">自动填充请求参数</td> <td class="info">自动填充请求参数</td>
<td> <td>
<label><input type="radio" name="autoFillParam" value="0" v-model="autoFillParam"></label> <label><input type="radio" name="autoFillParam" value="0" v-model="autoFillParam"></label>
<label><input type="radio" name="autoFillParam" value="1" v-model="autoFillParam">智能填充</label> <label><input type="radio" name="autoFillParam" value="1" v-model="autoFillParam">智能填充</label>
<label><input type="radio" name="autoFillParam" value="2" v-model="autoFillParam">全部填充</label> <label><input type="radio" name="autoFillParam" value="2" v-model="autoFillParam">全部填充</label>
</td> </td>
<td>不填充智能填充只填充flag、time等后缀的参数全部填充对应不上类型的使用“我是默认字符串”填充</td> <td>不填充智能填充只填充flag、time等后缀的参数全部填充对应不上类型的使用“我是默认字符串”填充</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
</body> </body>
<script src="../mg-ui/js/jquery-3.1.0.min.js"></script> <script src="../mg-ui/js/jquery-3.1.0.min.js"></script>
<script src="../zui/js/zui.min.js"></script> <script src="../zui/js/zui.min.js"></script>
<script src="../mg-ui/js/common.js"></script> <script src="../mg-ui/js/common.js"></script>
<script src="../vue/vue.js"></script> <script src="../mg-ui/js/mg-ui-cache-keys.js"></script>
<script src="../vue/vue.js"></script>
<script>
var urlBase = "../../"; <script>
var app = new Vue({ var urlBase = "../../";
el: '#app', var app = new Vue({
data: { el: '#app',
catalogShowType: '', data: {
treeShowType: '', catalogShowType: '',
showParamType:'', treeShowType: '',
onlyUseLastParam: '', showParamType:'',
autoFillParam: '', onlyUseLastParam: '',
userSettings: {} autoFillParam: '',
}, userSettings: {}
methods: { },
methods: {
},
mounted: function(){ },
getStorage('userSettings', function(data){ mounted: function(){
app.userSettings = data; getStorage(cacheKeys.userSettings, function(data){
app.catalogShowType = data.catalogShowType; app.userSettings = data;
app.treeShowType = data.treeShowType; app.catalogShowType = data.catalogShowType;
app.showParamType = data.showParamType; app.treeShowType = data.treeShowType;
app.onlyUseLastParam = data.onlyUseLastParam; app.showParamType = data.showParamType;
app.autoFillParam = data.autoFillParam; app.onlyUseLastParam = data.onlyUseLastParam;
}); app.autoFillParam = data.autoFillParam;
}, });
watch: { },
catalogShowType: function(newVal, oldval){ watch: {
app.userSettings.catalogShowType = newVal; catalogShowType: function(newVal, oldval){
storeUserSettings(); app.userSettings.catalogShowType = newVal;
window.parent.window.regeneratePathTree(); storeUserSettings();
}, getExport().regeneratePathTree();
treeShowType: function(newVal, oldval){ },
app.userSettings.treeShowType = newVal; treeShowType: function(newVal, oldval){
storeUserSettings(); app.userSettings.treeShowType = newVal;
window.parent.window.updateTreeShowType(); storeUserSettings();
}, window.parent.window.updateTreeShowType();
showParamType: function(newVal, oldval){ },
app.userSettings.showParamType = newVal; showParamType: function(newVal, oldval){
storeUserSettings(); app.userSettings.showParamType = newVal;
}, storeUserSettings();
onlyUseLastParam: function(newVal, oldval){ },
app.userSettings.onlyUseLastParam = newVal; onlyUseLastParam: function(newVal, oldval){
storeUserSettings(); app.userSettings.onlyUseLastParam = newVal;
}, storeUserSettings();
autoFillParam: function(newVal, oldval){ },
app.userSettings.autoFillParam = newVal; autoFillParam: function(newVal, oldval){
storeUserSettings(); app.userSettings.autoFillParam = newVal;
}, storeUserSettings();
} },
}); }
});
// 存储用户的配置信息
function storeUserSettings(){ // 存储用户的配置信息
setStorage('userSettings', app.userSettings, function(){ function storeUserSettings(){
window.parent.window.updateUserSettings(app.userSettings); setStorage(cacheKeys.userSettings, app.userSettings, function(){
}); getExport().updateUserSettings(app.userSettings);
} });
</script> }
</script>
<style>
#app{padding-top: 10px;} <style>
</style> #app{padding-top: 10px;}
</html> </style>
</html>

View File

@@ -1,140 +1,136 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>文档地址管理</title> <title>文档地址管理</title>
<link rel="stylesheet" type="text/css" href="../zui/css/zui.min.css"> <link rel="stylesheet" type="text/css" href="../zui/css/zui.min.css">
</head> </head>
<body> <body>
<div id="app"> <div id="app">
<table class="table table-bordered setting-table"> <table class="table table-bordered setting-table">
<thead> <thead>
<tr> <tr>
<td style="width: 50px;">序号</td> <td style="width: 50px;">序号</td>
<td>地址</td> <td>地址</td>
<td>操作</td> <td>操作</td>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr v-for="(item,index) in swaggerResourcesList" :key="item.id" :data-id="item.id" :data-index="index" > <tr v-for="(item,index) in swaggerResourcesList" :key="item.id" :data-id="item.id" :data-index="index" >
<td>{{index+1}}</td> <td>{{index+1}}</td>
<td>{{item}}</td> <td>{{item}}</td>
<td> <td>
<button class="btn btn-danger" type="button" v-on:click="deleteDocUrl($event)">删除</button> <button class="btn btn-danger" type="button" v-on:click="deleteDocUrl($event)">删除</button>
</td> </td>
</tr> </tr>
<tr> <tr>
<td colspan="3" align="center"> <td colspan="3" align="center">
<button class="btn" type="button" v-on:click="btnRefreshList"> 刷新 </button> <button class="btn" type="button" v-on:click="btnRefreshList"> 刷新 </button>
<button class="btn btn-info" type="button" v-on:click="exportDocument">导出文档</button> <button class="btn btn-info" type="button" v-on:click="exportDocument">导出文档</button>
<button class="btn btn-primary" type="button" v-on:click="addNewDocument">增加文档</button> <button class="btn btn-primary" type="button" v-on:click="addNewDocument">增加文档</button>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<!-- 增加文档弹出框 --> <!-- 增加文档弹出框 -->
<div class="modal fade" id="addNewDocumentModal"> <div class="modal fade" id="addNewDocumentModal">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal"> <button type="button" class="close" data-dismiss="modal">
<span aria-hidden="true">×</span><span class="sr-only">关闭</span> <span aria-hidden="true">×</span><span class="sr-only">关闭</span>
</button> </button>
<h4 class="modal-title">输入文档地址</h4> <h4 class="modal-title">输入文档地址</h4>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<input v-model="addNewDocumentInput" type="text" class="form-control" placeholder="例http://192.168.0.172/swagger-resources"> <input v-model="addNewDocumentInput" type="text" class="form-control" placeholder="例http://192.168.0.172/swagger-resources">
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-primary" v-on:click="addNewDocumentBtn">保存</button> <button type="button" class="btn btn-primary" v-on:click="addNewDocumentBtn">保存</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</body> </body>
<script src="../mg-ui/js/jquery-3.1.0.min.js"></script> <script src="../mg-ui/js/jquery-3.1.0.min.js"></script>
<script src="../zui/js/zui.min.js"></script> <script src="../zui/js/zui.min.js"></script>
<script src="../mg-ui/js/common.js"></script> <script src="../mg-ui/js/common.js"></script>
<script src="../vue/vue.js"></script> <script src="../mg-ui/js/mg-ui-cache-keys.js"></script>
<script src="../mg-ui/js/toast.js"></script> <script src="../vue/vue.js"></script>
<script src="../mg-ui/js/toast.js"></script>
<script>
var urlBase = "../../"; <script>
var app = new Vue({ var urlBase = "../../";
el: '#app', var app = new Vue({
data: { el: '#app',
swaggerResourcesList: [], data: {
addNewDocumentInput: '' swaggerResourcesList: [],
}, addNewDocumentInput: ''
methods: { },
btnRefreshList: function(){ methods: {
this.refreshList(); btnRefreshList: function(){
Toast.success("刷新成功!"); this.refreshList();
}, Toast.success("刷新成功!");
refreshList: function(){ },
getStorage('swagger-resources-list', function(data){ refreshList: function(){
//console.log(data); getStorage(cacheKeys.swaggerResourcesList, function(data){
app.swaggerResourcesList = data; //console.log(data);
}); app.swaggerResourcesList = data;
}, });
addNewDocument: function(){ },
app.addNewDocumentInput = ''; addNewDocument: function(){
$('#addNewDocumentModal').modal({moveable:true}); app.addNewDocumentInput = '';
}, $('#addNewDocumentModal').modal({moveable:true});
addNewDocumentBtn: function(){ },
var addNewDocumentInput = app.addNewDocumentInput; addNewDocumentBtn: function(){
if(isEmpty(addNewDocumentInput)) { var addNewDocumentInput = app.addNewDocumentInput;
Toast.error("地址不可以为空");return; if(isEmpty(addNewDocumentInput)) {
} Toast.error("地址不可以为空");return;
ajaxTemp(urlBase + "swagger-mg-ui/document/addSwaggerResources", "post", "json", {resourcesUrl: addNewDocumentInput}, function(json){ }
if(validateResult(json)) { ajaxTemp(urlBase + "swagger-mg-ui/document/addSwaggerResources", "post", "json", {resourcesUrl: addNewDocumentInput}, function(json){
//window.parent.document.location.reload(); if(validateResult(json)) {
app.swaggerResourcesList.push(addNewDocumentInput); //window.parent.document.location.reload();
$('#addNewDocumentModal').modal('hide'); app.swaggerResourcesList.push(addNewDocumentInput);
Toast.success("保存成功,刷新后生效!"); $('#addNewDocumentModal').modal('hide');
} Toast.success("保存成功,刷新后生效!");
}); }
}, });
exportDocument: function(){ },
window.parent.window.exportDocument(); exportDocument: function(){
}, getExport().exportDocument();
deleteDocUrl: function(event){ },
if(!confirm("确定要删除吗?")) { deleteDocUrl: function(event){
return; if(!confirm("确定要删除吗?")) {
} return;
var tr = $(event.currentTarget).parents("tr"); }
var index = tr.data("index"); var tr = $(event.currentTarget).parents("tr");
var newDocList = []; var index = tr.data("index");
for(var i=0;i<app.swaggerResourcesList.length;i++){ var newDocList = [];
if(i != index) { for(var i=0;i<app.swaggerResourcesList.length;i++){
newDocList.push(app.swaggerResourcesList[i]); if(i != index) {
} newDocList.push(app.swaggerResourcesList[i]);
} }
setStorage('swagger-resources-list', newDocList, function(data){ }
app.swaggerResourcesList = newDocList; setStorage(cacheKeys.swaggerResourcesList, newDocList, function(){
}); app.swaggerResourcesList = newDocList;
} });
}, }
mounted: function(){ },
this.refreshList(); mounted: function(){
}, this.refreshList();
watch: { },
catalogShowType: function(newVal, oldval){ watch: {
app.userSettings.catalogShowType = newVal; }
storeUserSettings(); });
window.parent.window.regeneratePathTree(); </script>
}
} <style>
}); #app{padding-top: 10px;}
</script> </style>
</html>
<style>
#app{padding-top: 10px;}
</style>
</html>

View File

@@ -1,37 +1,112 @@
<!doctype html> <!doctype html>
<html> <html xmlns:v-on="http://www.w3.org/1999/xhtml" xmlns:v-model="http://www.w3.org/1999/xhtml">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>全局参数管理</title> <title>全局参数管理</title>
<link rel="stylesheet" type="text/css" href="../zui/css/zui.min.css"> <link rel="stylesheet" type="text/css" href="../zui/css/zui.min.css">
</head> </head>
<body> <body>
<div id="app"> <div id="app">
全局参数管理 <div class="alert alert-primary">
</div> <div class="content">Tips所有接口的在线调试页面都将展示本页面配置的参数和值可统一配置会话等数据</div>
</body> </div>
<script src="../zui/js/zui.min.js"></script> <table class="table table-bordered setting-table">
<script src="../mg-ui/js/jquery-3.1.0.min.js"></script> <thead>
<script src="../vue/vue.js"></script> <tr>
<td>参数位置</td>
<script> <td>参数名</td>
var app = new Vue({ <td>参数值</td>
el: '#app', <td>操作</td>
data: { </tr>
userId: "", </thead>
}, <tbody>
methods: { <tr v-for="(item,index) in globalParamList" :key="item.id" :data-id="item.id" :data-index="index">
<td>
} <select class="form-control" v-model:value="item.position">
}); <option value="header">header</option>
</script> <option value="form">form</option>
</select>
<style> </td>
<td><input type="text" class="form-control" name="paramName" v-model:value="item.key" placeholder=""></td>
</style> <td><input type="text" class="form-control" name="paramName" v-model:value="item.value" placeholder=""></td>
</html> <td>
<button class="btn btn-danger" type="button" v-on:click="deleteParam($event)">删除</button>
</td>
</tr>
<tr>
<td colspan="3" align="center">
<button class="btn" type="button" v-on:click="btnRefreshList"> 刷新 </button>
<button class="btn btn-success" type="button" v-on:click="addGlobalParamLine()"> 新增 </button>
<button class="btn btn-info" type="button" v-on:click="saveAllGlobalParam">全部保存</button>
</td>
</tr>
</tbody>
</table>
</div>
</body>
<script src="../mg-ui/js/jquery-3.1.0.min.js"></script>
<script src="../zui/js/zui.min.js"></script>
<script src="../mg-ui/js/common.js"></script>
<script src="../mg-ui/js/mg-ui-cache-keys.js"></script>
<script src="../vue/vue.js"></script>
<script src="../mg-ui/js/toast.js"></script>
<script>
var urlBase = "../../";
var app = new Vue({
el: '#app',
data: {
globalParamList: []
},
methods: {
btnRefreshList: function () {
this.refreshList();
Toast.success("刷新成功!");
},
deleteParam: function (event) {
if (!confirm("确定要删除吗?")) {
return;
}
var tr = $(event.currentTarget).parents("tr");
var index = tr.data("index");
var newParamList = [];
for (var i = 0; i < app.globalParamList.length; i++) {
if (i != index) {
newParamList.push(app.globalParamList[i]);
}
}
app.globalParamList = newParamList;
},
addGlobalParamLine: function () {
app.globalParamList.push({
position: 'header', key: '', value: ''
});
},
saveAllGlobalParam: function () {
setStorage(cacheKeys.globalParamList, app.globalParamList, function(){
Toast.success("保存成功!");
});
},
refreshList: function(){
getStorage(cacheKeys.globalParamList, function(data){
app.globalParamList = data || [];
});
},
},
mounted: function () {
this.refreshList();
}
});
</script>
<style>
#app {
padding-top: 10px;
}
</style>
</html>