view.jsp 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368
  1. <%@ page import="com.lightinit.hsdataportal.dictionary.DicPlatformType" %>
  2. <%@ page language="java" pageEncoding="UTF-8"
  3. contentType="text/html; charset=UTF-8"%>
  4. <%@ page isELIgnored="false"%>
  5. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  6. <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  7. <%
  8. String basePath = request.getContextPath();
  9. String resourcePath = basePath + "/resource";
  10. %>
  11. <!doctype html>
  12. <html>
  13. <head>
  14. <meta charset="utf-8">
  15. <title>API详情</title>
  16. <link rel="stylesheet" href="<%=basePath%>/resource/css/open/base.css" type="text/css">
  17. <jsp:include page="../common/head.jsp"></jsp:include>
  18. </head>
  19. <body>
  20. <jsp:include page="../common/body_header.jsp"></jsp:include>
  21. <div class="mid-xiangqing">
  22. <div class="mid0">
  23. <div class="mid00">
  24. <div class="mid01">
  25. <div class="mid01-left">
  26. <div class="kuang">
  27. <img src="${imageContextPath}${apiOpenViewModel.resourceImg}" class="icon00">
  28. </div>
  29. <div class="left-bottom">
  30. &nbsp;<span class="bottom0">
  31. <img src="<%=resourcePath%>/images/icon_chakan.png" class="bottomimg">&nbsp;
  32. <c:if test="${not empty apiOpenViewModel.viewTimes}"> (${apiOpenViewModel.viewTimes})</c:if>
  33. <c:if test="${empty apiOpenViewModel.viewTimes}"> (0)</c:if>
  34. </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  35. <span class="bottom0">
  36. <img src="<%=resourcePath%>/images/icon_xiazai.png" class="bottomimg"> &nbsp;(0)
  37. </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  38. <span class="bottom0">
  39. <img src="<%=resourcePath%>/images/icon_wenben.png" class="bottomimg"> &nbsp;
  40. <c:if test="${empty apiOpenViewModel.followTotalCount}">(0)</c:if>
  41. <c:if test="${not empty apiOpenViewModel.followTotalCount}">(${apiOpenViewModel.followTotalCount})</c:if>
  42. </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  43. </div>
  44. </div>
  45. <div class="mid01-right">
  46. <div>
  47. <span class="mingchen">${apiOpenViewModel.resourceName}</span>
  48. <c:if test="${not empty apiOpenViewModel.serviceTag}">
  49. <span class="biaoqian">${apiOpenViewModel.serviceTag}</span>
  50. </c:if>
  51. </div>
  52. <div class="clearfix"></div>
  53. <div class="jianjie">${apiOpenViewModel.resourceSummary}</div>
  54. <div class="jiage0">
  55. <div>
  56. <span class="jiage1">价格:</span>
  57. <c:if test="${apiOpenViewModel.publishSetting.chargeMethod eq mianfei}">
  58. <span class="jiage3">免费</span>
  59. </c:if>
  60. <c:if test="${!apiOpenViewModel.publishSetting.chargeMethod eq mianfei}">
  61. <span class="jiage2">¥</span>
  62. <span class="jiage3">${apiOpenViewModel.publishSetting.packagePrice}/${apiOpenViewModel.publishSetting.packageMonths}月</span>
  63. </c:if>
  64. </div>
  65. <div class="clearfix"></div>
  66. </div>
  67. <div class="clearfix"></div>
  68. <div class="xinxi04">
  69. <div class="xinxi00">
  70. <div>
  71. <span class="xinxi1">面向对象:</span>
  72. <span class="xinxi2">${apiOpenViewModel.fourResourceCatelogModel.catelogCustomName}</span>
  73. </div>
  74. <div class="xinxi01">
  75. <span class="xinxi1">发布机构:</span>
  76. <span class="xinxi2">${apiOpenViewModel.fourResourceCatelogModel.catelogSectorName}</span>
  77. </div>
  78. </div>
  79. <div class="xinxi02">
  80. <div>
  81. <span class="xinxi1">分类:</span>
  82. <span class="xinxi002">${apiOpenViewModel.fourResourceCatelogModel.catelogThemeName}
  83. </span>
  84. </div>
  85. <div class="xinxi01">
  86. <span class="xinxi1">发布日期:</span>
  87. <span class="xinxi2"><fmt:formatDate value="${apiOpenViewModel.auditedAt}" pattern="yyyy-MM-dd"/> </span>
  88. </div>
  89. </div>
  90. </div>
  91. <div class="clearfix"></div>
  92. <div class="button0">
  93. <button id="fnApplyInfoButton" class="button1" onclick="fnApplyInfo()">立即申请</button>
  94. ${isFollow ==0 ? '<button class="button2" onclick="follow()" id="followId">关注</button>':'<button class="button2" onclick="follow()" id="delfollowId" >取消关注</button>'}
  95. </div>
  96. </div>
  97. </div>
  98. <div class="clearfix"></div>
  99. <div class="mid02"><!----套餐介绍---->
  100. <div class="xuanxiang">
  101. <span class="jieshao" id="diaoyong" onclick="apiInvoking()">API调用</span>
  102. <span id="return" class="shili" onclick="apiReturn()">返回码</span>
  103. <span class="shili" id="taocan" onclick="introduce()">套餐介绍</span>
  104. <span class="kongbai"></span>
  105. </div>
  106. <div class="taocan">
  107. <div id="diaoyongView" class="taocanfont">
  108. <div class="js01">${apiOpenViewModel.resourceName}</div>
  109. <c:if test="${not empty apiOpenViewModel.interfaceViewModels}">
  110. <c:forEach items="${apiOpenViewModel.interfaceViewModels}" var="interfaceView">
  111. <div class="js00">
  112. <span class="jk">接口地址:</span>
  113. <span class="jk0">${interfaceView.url}</span>
  114. </div>
  115. <div class="js00">
  116. <span class="jk">支持格式:</span>
  117. <span class="jk0">${interfaceView.responseFormat}</span>
  118. </div>
  119. <div class="js00">
  120. <span class="jk">请求方式:</span>
  121. <span class="jk0">${interfaceView.requestMethod}</span>
  122. </div>
  123. <div class="js00">
  124. <span class="jk">参数和示例:</span>
  125. </div>
  126. <div class="js00">
  127. <span class="jk">POST请求示例:@url@</span>
  128. </div>
  129. <div class="sl00">
  130. ${interfaceView.requestDemo}
  131. </div>
  132. <div class="qingqiucanshu">
  133. <span class="jk">请求参数:</span>
  134. <div class="canshu">
  135. <table>
  136. <tr class="cs01">
  137. <td>名称</td>
  138. <td>必填</td>
  139. <td>数据类型</td>
  140. <td>说明</td>
  141. </tr>
  142. <c:if test="${not empty interfaceView.interfaceInputs}">
  143. <c:forEach items="${interfaceView.interfaceInputs}" var="interfaceInput">
  144. <tr>
  145. <td>${interfaceInput.paramName}</td>
  146. <td>
  147. <c:if test="${interfaceInput.isRequired==0}">必填</c:if>
  148. <c:if test="${interfaceInput.isRequired!=0}">非必填</c:if>
  149. </td>
  150. <td>${interfaceInput.dataType}</td>
  151. <td>${interfaceInput.description}</td>
  152. </tr>
  153. </c:forEach>
  154. </c:if>
  155. </table>
  156. </div>
  157. </div>
  158. <div class="qingqiucanshu">
  159. <span class="jk">返回参数:</span>
  160. <div class="canshu">
  161. <div>
  162. <table>
  163. <tr class="cs01">
  164. <td>名称</td>
  165. <td>数据类型</td>
  166. <td>说明</td>
  167. </tr>
  168. <c:if test="${not empty interfaceView.interfaceOutputs}">
  169. <c:forEach items="${interfaceView.interfaceOutputs}" var="interfaceOutput">
  170. <tr>
  171. <td>${interfaceOutput.paramName}</td>
  172. <td>${interfaceOutput.dataType}</td>
  173. <td>${interfaceOutput.description}</td>
  174. </tr>
  175. </c:forEach>
  176. </c:if>
  177. </table>
  178. </div>
  179. </div>
  180. </div>
  181. <div class="js02">
  182. <span class="jk">返回参数:</span>
  183. </div>
  184. <div class="sl00">
  185. ${interfaceView.responseDemo}
  186. </div>
  187. </c:forEach>
  188. </c:if>
  189. </div>
  190. <div id="returnView" class="taocanfont">
  191. <div>
  192. <span>服务返回码</span>
  193. </div>
  194. <div>
  195. <span>${apiOpenViewModel.returnCode}</span>
  196. </div>
  197. </div>
  198. <div id="taocanView" class="taocanfont">
  199. 常规套餐包
  200. <span class="taocanfont1">【更多次数、更多优惠请线下洽谈】</span>
  201. <table >
  202. <tr class="taocan1">
  203. <td>名称</td>
  204. <td>价格</td>
  205. <td>次数/月数</td>
  206. <td>说明</td>
  207. </tr>
  208. <c:if test="${not empty apiOpenViewModel.publishSetting}">
  209. <tr>
  210. <td>${apiOpenViewModel.publishSetting.packageName}</td>
  211. <td>${apiOpenViewModel.publishSetting.packagePrice}元/${apiOpenViewModel.publishSetting.packageMonths}月</td>
  212. <td>${apiOpenViewModel.publishSetting.useTimesLimit}次/月</td>
  213. <td>${apiOpenViewModel.publishSetting.description}</td>
  214. </tr>
  215. </c:if>
  216. </table>
  217. </div>
  218. </div>
  219. </div>
  220. </div>
  221. </div>
  222. </div>
  223. <div class="clearfix"></div>
  224. <jsp:include page="../common/body_footer.jsp"></jsp:include>
  225. <input type="hidden" id="publishSettingId" name="publishSettingId" value="${apiOpenViewModel.publishSetting.id}">
  226. <%--////////////////////////////////////////申请信息 ///////////////////////////////////////////////////////--%>
  227. <div id="divApply" class="fade" style="display: none;">
  228. <div class="window">
  229. <div class="top00">
  230. <span class="p">申请信息</span>
  231. <img src="<%=resourcePath%>/images/icon_guanbi.png" alt="" class="guanbi" onclick="closeDivApply()">
  232. </div>
  233. <div class="form6">
  234. <form>
  235. <div class="application-font0">
  236. <span class="application-font1">共享类型:</span>
  237. <span class="application-font2">${apiOpenViewModel.shareType}</span>
  238. </div>
  239. <div class="application-font">
  240. <span class="application-font1">资源名称:</span>
  241. <span class="application-font2">${apiOpenViewModel.resourceName}</span>
  242. </div>
  243. <%--/////////////////////////////判断加入申请理由对话框//////////////////--%>
  244. <c:if test="${apiOpenViewModel.shareType eq '有条件共享'}">
  245. <div class="application-font">
  246. <span class="application-font1">申请理由:</span>
  247. <input type="text" class="application-font2" id="applyReason" name="applyReason" >
  248. </div>
  249. </c:if>
  250. <%--/////////////////////////////////////////////////////////--%>
  251. <div class="jiage-xinxi" style="visibility: hidden;">
  252. 已选择<span class="shuzi">1</span>个套餐,应付:¥<span class="shuzi">${outputModel.packagePrice}</span>元
  253. </div>
  254. <div class="clearfix"></div>
  255. <div>
  256. <div class="xieyi0">
  257. <span><input type="checkbox" class="box0" id="isAgree" checked value="我已阅读并接受"></span>
  258. <span class="fuwu00">阅读并接受<a class="xieyi" target="_blank" href="<%=basePath%>/share/static/agreement_service">《平台服务协议》</a></span>
  259. </div>
  260. <div class="jiarugwc" style="visibility: hidden;">加入购物车</div>
  261. <div class="shenqing" onclick="fnApply()">立即申请</div>
  262. </div>
  263. </form>
  264. </div>
  265. </div>
  266. </div>
  267. </body>
  268. <script type="text/javascript">
  269. //关注
  270. function follow() {
  271. if (!checkAuthentication()){
  272. return;
  273. }
  274. var settingId = $("#publishSettingId").val() ;
  275. $.post(
  276. '<%=basePath%>/share/api/follow.action',
  277. {settingId:settingId},
  278. function(datas){
  279. if(datas.stateCode==200){
  280. if (datas.msg=='关注成功'){
  281. alert('关注成功') ;
  282. $('#fnApplyInfoButton ~ button:eq(0)').remove();
  283. $('#fnApplyInfoButton').after('<button class="button2" onclick="follow()" id="delfollowId" >取消关注</button>');
  284. }else{
  285. alert('已取消关注') ;
  286. $('#fnApplyInfoButton ~ button:eq(0)').remove();
  287. $('#fnApplyInfoButton').after('<button class="button2" onclick="follow()" id="followId">关注</button>');
  288. }
  289. }else {
  290. alert(datas.msg);
  291. }
  292. },
  293. 'json')
  294. }
  295. //打开申请页面
  296. function fnApplyInfo(){
  297. if (!checkAuthentication()){
  298. return;
  299. }
  300. var id=$('#publishSettingId').val();
  301. var applyReason=$('#applyReason').val();
  302. $.post("<%=basePath%>/share/api/isApply.action/"+id,{applyReason:applyReason},function(result){
  303. if (result){
  304. $('#divApply').show();
  305. }else {
  306. alert('不能再次申请') ;
  307. }
  308. }) ;
  309. }
  310. //关闭申请页面
  311. function closeDivApply(){
  312. $('#divApply').hide();
  313. }
  314. //申请
  315. function fnApply(){
  316. if (!checkAuthentication()){
  317. return;
  318. }
  319. if($('#isAgree').is(':checked')) {
  320. var id = $('#publishSettingId').val();
  321. var applyReason = $('#applyReason').val();
  322. $.post("<%=basePath%>/share/api/apply.action/" + id, {applyReason: applyReason}, function (result) {
  323. if (result.stateCode == 200) {
  324. alert("申请成功");
  325. window.location.href = "<%=basePath%>/share/myApi/list.htm";
  326. } else {
  327. alert(result.msg);
  328. }
  329. });
  330. }else {
  331. alert('您还未接受协议!') ;
  332. }
  333. }
  334. /*///////////////////////////tab标签页切换//////////////////////////////////*/
  335. apiInvoking();
  336. function apiInvoking() {
  337. $("#diaoyong").attr("class", "jieshao");
  338. $("#return").attr("class", "shili");
  339. $("#taocan").attr("class", "shili");
  340. $("#diaoyongView").show();
  341. $("#returnView").hide();
  342. $("#taocanView").hide();
  343. }
  344. function apiReturn() {
  345. $("#diaoyong").attr("class", "shili");
  346. $("#return").attr("class", "jieshao");
  347. $("#taocan").attr("class", "shili");
  348. $("#diaoyongView").hide();
  349. $("#returnView").show();
  350. $("#taocanView").hide();
  351. }
  352. function introduce() {
  353. $("#diaoyong").attr("class", "shili");
  354. $("#return").attr("class", "shili");
  355. $("#taocan").attr("class", "jieshao");
  356. $("#diaoyongView").hide();
  357. $("#returnView").hide();
  358. $("#taocanView").show();
  359. }
  360. </script>
  361. </html>