base-layout.html 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  6. <title>IOmga</title>
  7. <link rel="stylesheet" href="{{ url_for('static', filename='layui-v2.9.7/css/layui.css') }}">
  8. <style>
  9. /* 字体集 */
  10. @font-face {
  11. font-family: "思源黑体 Regular";
  12. font-weight: 400;
  13. src: url("{{ url_for('static', filename='font/SourceHanSans.Regular.woff2') }}") format("woff2"),
  14. url("{{ url_for('static', filename='font/SourceHanSans.Regular.woff') }}") format("woff");
  15. font-display: swap;
  16. }
  17. body, html {
  18. height: 100vh;
  19. margin: 0;
  20. padding: 0;
  21. font-family: '思源黑体 Regular', Helvetica, 'Microsoft YaHei', Arial, sans-serif;
  22. }
  23. .my-logo {
  24. height: 68px;
  25. }
  26. .my-icon {
  27. font-size: 18px;
  28. margin-right: 6px;
  29. }
  30. .main-container {
  31. height: 100%;
  32. width: 100%;
  33. }
  34. li#search-tab .layui-tab-close {
  35. display: none;
  36. }
  37. .index-tab-content {
  38. height: calc(100% - (41px + 10px));
  39. padding: 0;
  40. }
  41. .index-tab-content .layui-tab-item {
  42. height: 100%;
  43. width: 100%
  44. }
  45. .search-body-container {
  46. width: 100%;
  47. height: 100%;
  48. display: flex;
  49. align-items: center;
  50. justify-content: center;
  51. }
  52. .search-main-container {
  53. width: calc(100% - 200px);
  54. height: 300px;
  55. }
  56. .gradient {
  57. /* 背景渐变色 */
  58. background: linear-gradient(-45deg, #2af598 0%, #009efd 100%);
  59. /* 背景尺寸 */
  60. background-size: 600% 600%;
  61. /* 循环动画 */
  62. animation: gradientBG 5s ease infinite;
  63. }
  64. /* 动画,控制背景 background-position */
  65. @keyframes gradientBG {
  66. 0% {
  67. background-position: 0% 50%;
  68. }
  69. 50% {
  70. background-position: 100% 50%;
  71. }
  72. 100% {
  73. background-position: 0% 50%;
  74. }
  75. }
  76. .fish-gradient {
  77. background: -webkit-linear-gradient(left,rgba(89,114,192,0.8),rgba(89,114,192,0.2));
  78. background: -o-linear-gradient(right,rgba(89,114,192,0.8),rgba(89,114,192,0.2));
  79. background: -moz-linear-gradient(right,rgba(89,114,192,0.8),rgba(89,114,192,0.2));
  80. background: linear-gradient(to right, rgba(89,114,192,0.8), rgba(89,114,192,0.2));
  81. background-size: 400% 400%;
  82. animation: fish-gradientBG 5s ease infinite;
  83. }
  84. @keyframes fish-gradientBG {
  85. 0% {
  86. background-position: 0% 50%;
  87. }
  88. 50% {
  89. background-position: 100% 50%;
  90. }
  91. 100% {
  92. background-position: 0% 50%;
  93. }
  94. }
  95. /* 定义底部承载游动小鱼特效的div样式 */
  96. .fish-container {
  97. margin:0;
  98. padding:0;
  99. background-color:transparent;
  100. width:100%;
  101. height:200px;
  102. /* z-index:-1; */
  103. position:absolute;
  104. bottom:4px;
  105. left:0;
  106. }
  107. </style>
  108. </head>
  109. <body>
  110. <div class="layui-layout layui-fluid" style="height: 100%; padding: 0">
  111. <div class="layui-row" style="height: 100%">
  112. <div class="layui-col-md2" style="height: 100%;background-color: pink">
  113. <div class="layui-logo layui-hide-xs layui-bg-gray my-logo">
  114. <object data="{{ url_for('static', filename='img/LOGO.svg') }}">
  115. <embed src="{{ url_for('static', filename='img/LOGO.svg') }}" ></embed>
  116. </object>
  117. {# <img src="{{ url_for('static', filename='img/LOGO.svg') }}">#}
  118. </div>
  119. <div class="layui-row" style="height: calc(100% - 68px)">
  120. <ul class="layui-nav layui-nav-tree" style="width: 100%; height: 100%; position: relative;">
  121. <li class="layui-nav-item layui-this">
  122. <a class="layui-font-18" href="javascript:;"><i class="layui-icon layui-icon-home my-icon"></i>首页</a>
  123. </li>
  124. <li class="layui-nav-item">
  125. <a class="layui-font-18" href="javascript:;"><i
  126. class="layui-icon layui-icon-download-circle my-icon"></i>下载
  127. <span class="layui-badge">9</span>
  128. </a>
  129. </li>
  130. <li class="layui-nav-item"><a class="layui-font-18" href="javascript:;"><i
  131. class="layui-icon layui-icon-component my-icon"></i>插件</a></li>
  132. <li class="layui-nav-item"><a class="layui-font-18" href="javascript:;"><i
  133. class="layui-icon layui-icon-set my-icon"></i>设置</a></li>
  134. <li class="layui-nav-item" style="position: absolute; bottom: 0">
  135. <hr class="layui-bg-black" style="margin: 0; border-bottom-width: 2px">
  136. <a class="layui-font-18" href="javascript:;"><i class="layui-icon layui-icon-tips my-icon"></i>关于</a>
  137. </li>
  138. </ul>
  139. </div>
  140. </div>
  141. <div class="layui-col-md10" style="height: 100%;background-color: white">
  142. <div class="main-container">
  143. {% block container %}main-container{% endblock %}
  144. </div>
  145. </div>
  146. </div>
  147. </div>
  148. <!-- 引入 layui.js 的 <script> 标签最好放置在 html 末尾 -->
  149. <script src="{{ url_for('static', filename='layui-v2.9.7/layui.js') }}"></script>
  150. <script src="{{ url_for('static', filename='js/jquery-3.7.1.min.js') }}"></script>
  151. <script src="{{ url_for('static', filename='js/fish.js') }}"></script>
  152. <script>
  153. layui.config({
  154. base: "{{ url_for('static', filename='layui-modules/') }}",
  155. version: true
  156. }).use(["layer", "form", "laypage", "element", "util", "tag"], function () {
  157. var layer = layui.layer
  158. , form = layui.form
  159. , laypage = layui.laypage
  160. , element = layui.element
  161. , util = layui.util
  162. , tag = layui.tag;
  163. //欢迎信息
  164. layer.msg('Hello World');
  165. // 渲染 nav 导航菜单
  166. element.render('nav');
  167. // tab 切换事件
  168. element.on('tab(body-handle)', function(data){
  169. console.log(data.index); // 得到当前 tab 项的所在下标
  170. if (data.index === 0) {
  171. $("#jsi-flying-fish-container").empty();
  172. RENDERER.init();
  173. }
  174. });
  175. tag.on('click(demo)', function (data) {
  176. console.log('点击');
  177. console.log(this); //当前Tag标签所在的原始DOM元素
  178. console.log(data.index); //得到当前Tag的所在下标
  179. console.log(data.elem); //得到当前的Tag大容器
  180. });
  181. // 新增 tab
  182. util.on("lay-on", {
  183. openSearch: function () {
  184. let form_data = form.val('search-form');
  185. console.log(JSON.stringify(form_data));
  186. $.ajax({
  187. url: "{{ url_for('get_search_url') }}",
  188. method: 'GET',
  189. data: form_data,
  190. success: function(response) {
  191. console.log(response);
  192. let data = response.data;
  193. // 创建一个新的 iframe 元素
  194. let iframe = $('<iframe>', {
  195. src: data.search_url,
  196. id: data.id,
  197. frameborder: 0,
  198. scrolling: 'auto',
  199. style: 'height: 100%; width: 100%; display: block;'
  200. });
  201. console.log(iframe.prop('outerHTML'));
  202. element.tabAdd("body-handle", {
  203. title: '搜索结果: ' + data.title,
  204. content: iframe.prop('outerHTML'),
  205. id: data.id,
  206. change: true
  207. });
  208. },
  209. error: function() {
  210. console.error('Failed to get dynamic URL');
  211. }
  212. });
  213. }
  214. })
  215. });
  216. </script>
  217. </body>
  218. </html>