格雷 2 rokov pred
rodič
commit
a2edba644c

+ 17 - 0
.idea/IOmga.iml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="PYTHON_MODULE" version="4">
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$">
+      <excludeFolder url="file://$MODULE_DIR$/venv" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+  <component name="TemplatesService">
+    <option name="TEMPLATE_FOLDERS">
+      <list>
+        <option value="$MODULE_DIR$/templates" />
+      </list>
+    </option>
+  </component>
+</module>

+ 6 - 0
.idea/inspectionProfiles/profiles_settings.xml

@@ -0,0 +1,6 @@
+<component name="InspectionProjectProfileManager">
+  <settings>
+    <option name="USE_PROJECT_PROFILE" value="false" />
+    <version value="1.0" />
+  </settings>
+</component>

+ 4 - 0
.idea/misc.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8 (IOmga)" project-jdk-type="Python SDK" />
+</project>

+ 8 - 0
.idea/modules.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/IOmga.iml" filepath="$PROJECT_DIR$/.idea/IOmga.iml" />
+    </modules>
+  </component>
+</project>

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>

+ 188 - 0
.idea/workspace.xml

@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ChangeListManager">
+    <list default="true" id="0223e498-9d37-4de5-9ad1-8a9d3c8e31c3" name="更改" comment="2024.03.13">
+      <change beforePath="$PROJECT_DIR$/app.py" beforeDir="false" afterPath="$PROJECT_DIR$/app.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/templates/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/index.html" afterDir="false" />
+    </list>
+    <option name="SHOW_DIALOG" value="false" />
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+    <option name="LAST_RESOLUTION" value="IGNORE" />
+  </component>
+  <component name="FileTemplateManagerImpl">
+    <option name="RECENT_TEMPLATES">
+      <list>
+        <option value="Flask Main" />
+        <option value="Python Script" />
+        <option value="HTML File" />
+      </list>
+    </option>
+  </component>
+  <component name="FlaskConsoleOptions" custom-start-script="import sys&#10;sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])&#10;from flask.cli import ScriptInfo&#10;locals().update(ScriptInfo(create_app=None).load_app().make_shell_context())&#10;print(&quot;Python %s on %s\nApp: %s [%s]\nInstance: %s&quot; % (sys.version, sys.platform, app.import_name, app.env, app.instance_path))">
+    <envs>
+      <env key="FLASK_APP" value="app" />
+    </envs>
+    <option name="myCustomStartScript" value="import sys&#10;sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])&#10;from flask.cli import ScriptInfo&#10;locals().update(ScriptInfo(create_app=None).load_app().make_shell_context())&#10;print(&quot;Python %s on %s\nApp: %s [%s]\nInstance: %s&quot; % (sys.version, sys.platform, app.import_name, app.env, app.instance_path))" />
+    <option name="myEnvs">
+      <map>
+        <entry key="FLASK_APP" value="app" />
+      </map>
+    </option>
+  </component>
+  <component name="Git.Settings">
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
+    <option name="SET_USER_NAME_GLOBALLY" value="false" />
+  </component>
+  <component name="MarkdownSettingsMigration">
+    <option name="stateVersion" value="1" />
+  </component>
+  <component name="ProjectId" id="2dcnLohNDxLqQbbzoH11K0b5t0H" />
+  <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
+  <component name="ProjectViewState">
+    <option name="hideEmptyMiddlePackages" value="true" />
+    <option name="showLibraryContents" value="true" />
+  </component>
+  <component name="PropertiesComponent">{
+  &quot;keyToString&quot;: {
+    &quot;ASKED_ADD_EXTERNAL_FILES&quot;: &quot;true&quot;,
+    &quot;DefaultHtmlFileTemplate&quot;: &quot;HTML File&quot;,
+    &quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
+    &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
+    &quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
+    &quot;settings.editor.selected.configurable&quot;: &quot;preferences.pluginManager&quot;
+  }
+}</component>
+  <component name="RunManager" selected="Python.app">
+    <configuration name="app" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
+      <module name="IOmga" />
+      <option name="INTERPRETER_OPTIONS" value="" />
+      <option name="PARENT_ENVS" value="true" />
+      <envs>
+        <env name="PYTHONUNBUFFERED" value="1" />
+        <env name="FLASK_ENV" value="development" />
+        <env name="FLASK_DEBUG" value="1" />
+      </envs>
+      <option name="SDK_HOME" value="" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <option name="IS_MODULE_SDK" value="true" />
+      <option name="ADD_CONTENT_ROOTS" value="true" />
+      <option name="ADD_SOURCE_ROOTS" value="true" />
+      <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
+      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/app.py" />
+      <option name="PARAMETERS" value="" />
+      <option name="SHOW_COMMAND_LINE" value="false" />
+      <option name="EMULATE_TERMINAL" value="false" />
+      <option name="MODULE_MODE" value="false" />
+      <option name="REDIRECT_INPUT" value="false" />
+      <option name="INPUT_FILE" value="" />
+      <method v="2" />
+    </configuration>
+    <configuration name="Flask (app.py)" type="Python.FlaskServer" temporary="true" nameIsGenerated="true">
+      <module name="IOmga" />
+      <option name="target" value="$PROJECT_DIR$/app.py" />
+      <option name="targetType" value="PATH" />
+      <option name="INTERPRETER_OPTIONS" value="" />
+      <option name="PARENT_ENVS" value="true" />
+      <option name="SDK_HOME" value="" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <option name="IS_MODULE_SDK" value="true" />
+      <option name="ADD_CONTENT_ROOTS" value="true" />
+      <option name="ADD_SOURCE_ROOTS" value="true" />
+      <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
+      <option name="launchJavascriptDebuger" value="false" />
+      <method v="2" />
+    </configuration>
+    <list>
+      <item itemvalue="Flask 服务器.Flask (app.py)" />
+      <item itemvalue="Python.app" />
+    </list>
+    <recent_temporary>
+      <list>
+        <item itemvalue="Python.app" />
+        <item itemvalue="Flask 服务器.Flask (app.py)" />
+      </list>
+    </recent_temporary>
+  </component>
+  <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
+  <component name="TaskManager">
+    <task active="true" id="Default" summary="默认任务">
+      <changelist id="0223e498-9d37-4de5-9ad1-8a9d3c8e31c3" name="更改" comment="" />
+      <created>1710316180946</created>
+      <option name="number" value="Default" />
+      <option name="presentableId" value="Default" />
+      <updated>1710316180946</updated>
+      <workItem from="1710316205375" duration="92000" />
+      <workItem from="1710316302952" duration="2345000" />
+      <workItem from="1710318758218" duration="425000" />
+      <workItem from="1710319189675" duration="6270000" />
+      <workItem from="1711329272552" duration="17731000" />
+    </task>
+    <task id="LOCAL-00001" summary="2024.03.13">
+      <created>1710318899380</created>
+      <option name="number" value="00001" />
+      <option name="presentableId" value="LOCAL-00001" />
+      <option name="project" value="LOCAL" />
+      <updated>1710318899380</updated>
+    </task>
+    <task id="LOCAL-00002" summary="2024.03.13">
+      <created>1710319633484</created>
+      <option name="number" value="00002" />
+      <option name="presentableId" value="LOCAL-00002" />
+      <option name="project" value="LOCAL" />
+      <updated>1710319633484</updated>
+    </task>
+    <task id="LOCAL-00003" summary="2024.03.13">
+      <created>1710320110380</created>
+      <option name="number" value="00003" />
+      <option name="presentableId" value="LOCAL-00003" />
+      <option name="project" value="LOCAL" />
+      <updated>1710320110380</updated>
+    </task>
+    <task id="LOCAL-00004" summary="2024.03.13">
+      <created>1710320166910</created>
+      <option name="number" value="00004" />
+      <option name="presentableId" value="LOCAL-00004" />
+      <option name="project" value="LOCAL" />
+      <updated>1710320166910</updated>
+    </task>
+    <task id="LOCAL-00005" summary="2024.03.13">
+      <created>1710320348280</created>
+      <option name="number" value="00005" />
+      <option name="presentableId" value="LOCAL-00005" />
+      <option name="project" value="LOCAL" />
+      <updated>1710320348280</updated>
+    </task>
+    <task id="LOCAL-00006" summary="2024.03.13">
+      <created>1710324363716</created>
+      <option name="number" value="00006" />
+      <option name="presentableId" value="LOCAL-00006" />
+      <option name="project" value="LOCAL" />
+      <updated>1710324363716</updated>
+    </task>
+    <option name="localTasksCounter" value="7" />
+    <servers />
+  </component>
+  <component name="TypeScriptGeneratedFilesManager">
+    <option name="version" value="3" />
+  </component>
+  <component name="Vcs.Log.Tabs.Properties">
+    <option name="TAB_STATES">
+      <map>
+        <entry key="MAIN">
+          <value>
+            <State />
+          </value>
+        </entry>
+      </map>
+    </option>
+  </component>
+  <component name="VcsManagerConfiguration">
+    <MESSAGE value="2024.03.13" />
+    <option name="LAST_COMMIT_MESSAGE" value="2024.03.13" />
+  </component>
+  <component name="com.intellij.coverage.CoverageDataManagerImpl">
+    <SUITE FILE_PATH="coverage/IOmga$Flask__app_py_.coverage" NAME="Flask (app.py) 覆盖结果" MODIFIED="1710318377612" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
+    <SUITE FILE_PATH="coverage/IOmga$app.coverage" NAME="app 覆盖结果" MODIFIED="1711356440750" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
+  </component>
+</project>

+ 1 - 0
GUI布局.drawio

@@ -0,0 +1 @@
+<mxfile host="Electron" modified="2024-03-25T03:18:25.512Z" agent="5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.8.16 Chrome/106.0.5249.199 Electron/21.4.0 Safari/537.36" etag="dtN2SU5VO_jlAP5bu787" version="20.8.16" type="device"><diagram name="第 1 页" id="mdKongOMFtGVh83izUMz">zZhdk5owFIZ/zbncGSB8JJcEwV60s9Pxou0llawwReJgLNpf3wSDyhJnt10RHWc8vPkgec7hnAigaL2f1+km/8IzVoJjZXtAM3Ac2yJY/ijlcFSwQ47Cqi4y3eksLIo/rBup1V2RsW2vo+C8FMWmLy55VbGl6GlpXfOm3+2Fl/27btIVGwiLZVoO1W9FJvJuF8FZ/8SKVd7d2fb1/tZp11nvZJunGW8uJBQDimrOxdFa7yNWKngdl+O45ErraWE1q8R7Brgsz1GT/6A/rRn+isL5PHl60rP8Tsud3rBerDh0BGq+qzKmJrEA0SYvBFts0qVqbaTPpZaLdSmvbGnq6Vgt2P7qOu3T7mXYML5moj7ILjpCXM2rOeO2LazF/II17nqm2ser01xnDNLQJP6BivN4VGwTFsdAJRiNChpQ+fw8f/4YmRdeCf3QO3i8+DGBsq2xQLnD8IkJhD4QvzVsoN7tsFl3DjB/LGyeAZsLFAOmEGOgM/V9NGyONTU234DNB5wAOfKjQP3Hw+ZPjS0wYMMQxkBjiAMVatJ+NGzImRobNmDzAHtAURttIeDHw4Ynx2abaoIPYQRhG3c0UdwUwJmyZQASF0L8XX4GNCUH0Ue2FTX/xSJe8loqFa+Y4liU5SspLYtVJS+XkhuTOlVUC3nYDXXDusgydRujj/pevGXl1gPcQOPvkoShJJ20S7eh0dxmqEmTnQT1AOR7PUqmnIDIXSkZStDUlNzXlIghBZj+VTijUbpScRKggToWysVg0pZuCmFryCWTqC1Gbpsm2gMkJSrh0khV+DhRBgkfNEWMEezYG7rRumuwmyrgwFfXw99+O/zTeqkzq41ugzHw3s4Z/l0pkvdQVCeLGLDfGjLWP5hWRihZNumXrFMJuwCLjSXrP/KMvDy/LmrbLl66ofgv</diagram></mxfile>

+ 2 - 2
app.py

@@ -19,8 +19,8 @@ if __name__ == '__main__':
     window = webview.create_window(
         title='IOmga',
         url=server,
-        width=900,
-        height=620,
+        width=1080,
+        height=840,
         # frameless=True,
         # easy_drag=True,
         # hidden=True,

+ 87 - 73
templates/index.html

@@ -5,31 +5,93 @@
   <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
   <title>测试 - layui</title>
   <link rel="stylesheet" href="{{ url_for('static', filename='js/layui-v2.9.7/css/layui.css') }}">
-</head>
-<body>
+  <style>
+    body,html{
+      height: 100vh;
+      margin: 0;
+      padding: 0;
+    }
 
-<div class="layui-container">
-  <div class="layui-progress" style="margin: 15px 0 30px;">
-    <div class="layui-progress-bar" lay-percent="100%"></div>
-  </div>
-  
-  
-  <div class="layui-btn-container">
-    <button class="layui-btn" test-active="test-form">一个按钮</button>
-    <button class="layui-btn layui-btn-normal" id="test2">当前日期</button>
-  </div>
-  
-  <blockquote class="layui-elem-quote" style="margin-top: 30px;">
-    <div class="layui-text">
-      <ul>
-        <li>你当前预览的是:<span>layui-v<span id="version"></span></span></li>
-        <li>layui 是一套开源的 Web UI(界面)组件库。这是一个极其简洁的演示页面</li>
-      </ul>
-    </div>
-  </blockquote>
-</div>
+    .my-logo {
+      height: 68px;
+    }
 
+    .my-icon {
+      font-size: 18px;
+      margin-right: 6px;
+    }
 
+    .main-container {
+      height: 100%;
+      width: 100%;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+    }
+
+    .search-container {
+      width: calc(100% - 200px);
+    }
+  </style>
+</head>
+<body>
+  <div class="layui-layout layui-fluid" style="height: 100%; padding: 0">
+    <div class="layui-row" style="height: 100%">
+      <div class="layui-col-md2" style="height: 100%;background-color: pink">
+        <div class="layui-logo layui-hide-xs layui-bg-gray my-logo">layout demo</div>
+        <div class="layui-row" style="height: calc(100% - 68px)">
+          <ul class="layui-nav layui-nav-tree" style="width: 100%; height: 100%; position: relative;">
+            <li class="layui-nav-item layui-this">
+              <a class="layui-font-18" href="javascript:;"><i class="layui-icon layui-icon-home my-icon"></i>首页</a>
+            </li>
+            <li class="layui-nav-item">
+              <a class="layui-font-18" href="javascript:;"><i class="layui-icon layui-icon-download-circle my-icon"></i>下载
+                <span class="layui-badge">9</span>
+              </a>
+            </li>
+            <li class="layui-nav-item"><a class="layui-font-18" href="javascript:;"><i class="layui-icon layui-icon-component my-icon"></i>插件</a></li>
+            <li class="layui-nav-item"><a class="layui-font-18" href="javascript:;"><i class="layui-icon layui-icon-set my-icon"></i>设置</a></li>
+            <li class="layui-nav-item" style="position: absolute; bottom: 0">
+              <hr class="layui-bg-black" style="margin: 0; border-bottom-width: 2px">
+              <a class="layui-font-18" href="javascript:;"><i class="layui-icon layui-icon-tips my-icon"></i>关于</a>
+            </li>
+          </ul>
+        </div>
+      </div>
+      <div class="layui-col-md10" style="height: 100%;background-color: white">
+        <div class="main-container">
+          <div class="search-container">
+            <div class="layui-text" style=" ">
+              <h1>欢迎使用XXXXXX</h1>
+            </div>
+            <form class="layui-form" action="">
+              <div class="layui-form-item">
+                <div class="layui-input-group" style="width: 100%">
+                  <input type="text" placeholder="请输入想要搜寻的XXX..." class="layui-input">
+                  <div class="layui-input-split layui-input-suffix" style="cursor: pointer; width: 1px">
+                    <i class="layui-icon layui-icon-search my-icon"></i>
+                    搜索
+                  </div>
+                </div>
+              </div>
+              <div class="layui-form-item">
+                <label class="layui-form-label" style="padding-left: 0; text-align: left; width: 100px">选择搜索平台:</label>
+                <div class="layui-input-block" style="width: 180px; margin-left: 115px">
+                  <select name="platform" lay-filter="platform">
+                    <option value="0" selected>聚合搜索</option>
+                    <option value="1">AAAA</option>
+                    <option value="2">BBBB</option>
+                    <option value="3">CCCC</option>
+                    <option value="4">DDDD</option>
+                  </select>
+                </div>
+              </div>
+            </form>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
 
 <!-- 引入 layui.js 的 <script> 标签最好放置在 html 末尾 -->
 <script src="{{ url_for('static', filename='js/layui-v2.9.7/layui.js') }}"></script>
@@ -44,57 +106,9 @@ layui.use(function(){
   
   //欢迎信息
   layer.msg('Hello World');
-  
-  //输出版本号
-  lay('#version').html(layui.v);
-  
-  //日期
-  laydate.render({
-    elem: '#test2'
-    ,value: new Date()
-    ,isInitValue: true
-  });
-  
-  //触发事件
-  util.event('test-active', {
-    'test-form': function(){
-      layer.open({
-        type: 1
-        ,resize: false
-        ,shadeClose: true
-        ,area: '350px'
-        ,title: 'layer + form'
-        ,content: ['<ul class="layui-form layui-form-pane" style="margin: 15px;">'
-          ,'<li class="layui-form-item">'
-            ,'<label class="layui-form-label">输入框</label>'
-            ,'<div class="layui-input-block">'
-              ,'<input class="layui-input" lay-verify="required" name="field1">'
-            ,'</div>'
-          ,'</li>'
-          ,'<li class="layui-form-item">'
-            ,'<label class="layui-form-label">选择框</label>'
-            ,'<div class="layui-input-block">'
-              ,'<select name="field2">'
-                ,'<option value="A">A</option>'
-                ,'<option value="B">B</option>'
-              ,'<select>'
-            ,'</div>'
-          ,'</li>'
-          ,'<li class="layui-form-item" style="text-align:center;">'
-            ,'<button type="submit" lay-submit lay-filter="*" class="layui-btn">提交</button>'
-          ,'</li>'
-        ,'</ul>'].join('')
-        ,success: function(layero, index){
-          layero.find('.layui-layer-content').css('overflow', 'visible');
-          
-          form.render().on('submit(*)', function(data){
-            layer.msg(JSON.stringify(data.field), {icon: 1});
-            //layer.close(index); //关闭层
-          });
-        }
-      });
-    }
-  });
+  // 渲染 nav 导航菜单
+  element.render('nav');
+
 });
 </script>
 </body>