结构化数据建模/数据预览 新增报告生成功能

This commit is contained in:
lzh
2021-03-15 23:43:19 +08:00
parent 7069a2e785
commit 832bca4723
10 changed files with 698 additions and 352 deletions
+283 -190
View File
@@ -2,9 +2,14 @@
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="8d242b82-cb9f-402f-b127-e24c2f7034a5" name="Default Changelist" comment=""> <list default="true" id="8d242b82-cb9f-402f-b127-e24c2f7034a5" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/src/views/nav1/Clean.vue" afterDir="false" />
<change afterPath="$PROJECT_DIR$/static/AMLlogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/routes.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/routes.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/views/Home.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/views/Home.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/views/Login.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/views/Login.vue" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/views/Login.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/views/Login.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/views/nav1/Form.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/views/nav1/Form.vue" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/views/nav1/Form.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/views/nav1/MLmodel.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/views/nav1/Table.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/views/nav1/Table.vue" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/views/nav1/Table.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/views/nav1/Table.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/views/nav1/user.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/views/nav1/user.vue" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/views/nav1/user.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/views/nav1/user.vue" afterDir="false" />
</list> </list>
@@ -28,30 +33,8 @@
<expand /> <expand />
<select /> <select />
</component> </component>
<component name="DockManager">
<window id="1">
<content type="file-editors">
<state>
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/vue_study.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
<first_editor relative-caret-position="56">
<caret line="113" column="12" selection-start-line="113" selection-start-column="12" selection-end-line="113" selection-end-column="12" />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
</file>
</leaf>
</state>
</content>
</window>
</component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<splitter split-orientation="horizontal" split-proportion="0.41442156"> <splitter split-orientation="horizontal" split-proportion="0.6565401">
<split-first> <split-first>
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
@@ -75,27 +58,108 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="true"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/views/nav1/Form.vue"> <entry file="file://$PROJECT_DIR$/src/views/Login.vue">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="230"> <state relative-caret-position="1104">
<caret line="154" column="23" lean-forward="true" selection-start-line="154" selection-start-column="23" selection-end-line="154" selection-end-column="23" /> <caret line="48" selection-start-line="48" selection-end-line="48" />
<folding> <folding>
<element signature="n#style#0;n#a#0;n#el-form#0;n#template#0;n#!!top" expanded="true" />
<element signature="n#style#0;n#el-form-item#2;n#el-form#0;n#template#0;n#!!top" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/views/Main.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="253">
<caret line="11" selection-start-line="11" selection-end-line="11" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/views/Home.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="483">
<caret line="21" column="72" selection-start-line="21" selection-start-column="72" selection-end-line="21" selection-end-column="72" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/views/nav1/user.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="109">
<caret line="94" column="44" lean-forward="true" selection-start-line="94" selection-start-column="44" selection-end-line="94" selection-end-column="44" />
<folding>
<element signature="n#style#0;n#el-table#0;n#template#0;n#section#0;n#template#0;n#!!top" expanded="true" />
<element signature="n#style#0;n#iframe#0;n#!!top" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/LICENSE">
<provider selected="true" editor-type-id="text-editor" />
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/fesfe.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="332">
<caret line="45" selection-start-line="45" selection-end-line="52" selection-end-column="50" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/views/nav1/MLmodel.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3220">
<caret line="140" column="34" selection-start-line="140" selection-start-column="34" selection-end-line="140" selection-end-column="34" />
<folding>
<element signature="n#style#0;n#el-form#0;n#template#0;n#!!top" expanded="true" />
<element signature="n#style#0;n#el-col#0;n#el-dialog#0;n#el-form#0;n#template#0;n#!!top" expanded="true" /> <element signature="n#style#0;n#el-col#0;n#el-dialog#0;n#el-form#0;n#template#0;n#!!top" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/views/nav1/Clean.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="253">
<caret line="11" column="16" selection-start-line="11" selection-start-column="16" selection-end-line="11" selection-end-column="16" />
</state>
</provider>
</entry>
</file>
</leaf> </leaf>
</split-first> </split-first>
<split-second> <split-second>
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/views/nav1/MLmodel.vue">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret line="79" column="3" selection-start-line="79" selection-start-column="3" selection-end-line="85" selection-end-column="21" />
<folding>
<element signature="n#style#0;n#el-form#0;n#template#0;n#!!top" expanded="true" />
<element signature="n#style#0;n#el-col#0;n#el-dialog#0;n#el-form#0;n#template#0;n#!!top" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/views/nav1/Table.vue"> <entry file="file://$PROJECT_DIR$/src/views/nav1/Table.vue">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="323"> <state relative-caret-position="895">
<caret line="96" column="95" selection-start-line="96" selection-start-column="95" selection-end-line="96" selection-end-column="95" /> <caret line="104" selection-start-line="103" selection-end-line="104" />
<folding> <folding>
<element signature="n#style#0;n#span#0;n#section#0;n#template#0;n#!!top" expanded="true" /> <element signature="n#style#0;n#span#0;n#section#0;n#template#0;n#!!top" expanded="true" />
<element signature="n#style#0;n#el-table#0;n#section#0;n#template#0;n#!!top" expanded="true" /> <element signature="n#style#0;n#el-table#0;n#section#0;n#template#0;n#!!top" expanded="true" />
@@ -104,71 +168,19 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="true"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/views/nav1/user.vue"> <entry file="file://$PROJECT_DIR$/src/views/nav1/user.vue">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="201"> <state relative-caret-position="-23">
<caret line="60" column="75" selection-start-line="60" selection-start-column="75" selection-end-line="60" selection-end-column="75" /> <caret line="5" column="56" selection-start-line="5" selection-start-column="56" selection-end-line="5" selection-end-column="56" />
<folding> <folding>
<element signature="n#style#0;n#el-table#0;n#template#0;n#section#0;n#template#0;n#!!top" expanded="true" /> <element signature="n#style#0;n#el-table#0;n#template#0;n#section#0;n#template#0;n#!!top" expanded="true" />
<element signature="n#style#0;n#iframe#0;n#!!top" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/config/index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="782">
<caret line="34" column="20" selection-start-line="34" selection-start-column="20" selection-end-line="34" selection-end-column="20" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/views/Home.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="966">
<caret line="75" column="16" selection-start-line="75" selection-start-column="16" selection-end-line="75" selection-end-column="16" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/views/Login.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="434">
<caret line="64" column="32" selection-start-line="64" selection-start-column="32" selection-end-line="64" selection-end-column="32" />
<folding>
<element signature="n#style#0;n#a#0;n#el-form#0;n#template#0;n#!!top" expanded="true" />
<element signature="n#style#0;n#el-form-item#2;n#el-form#0;n#template#0;n#!!top" expanded="true" />
<element signature="n#el-form-item#2;n#el-form#0;n#template#0;n#!!top" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/routes.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1035">
<caret line="55" column="19" selection-start-line="55" selection-start-column="19" selection-end-line="55" selection-end-column="19" />
<folding>
<element signature="e#0#37#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/api/api.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="460">
<caret line="20" column="34" selection-start-line="8" selection-end-line="9" />
</state>
</provider>
</entry>
</file>
</leaf> </leaf>
</split-second> </split-second>
</splitter> </splitter>
@@ -177,6 +189,7 @@
<option name="RECENT_TEMPLATES"> <option name="RECENT_TEMPLATES">
<list> <list>
<option value="Vue Single File Component" /> <option value="Vue Single File Component" />
<option value="Python Script" />
</list> </list>
</option> </option>
</component> </component>
@@ -184,7 +197,18 @@
<findStrings> <findStrings>
<find>查询</find> <find>查询</find>
<find>导航</find> <find>导航</find>
<find>mod</find>
<find>mode</find>
<find>v-show</find>
<find>img</find>
<find>系统</find>
<find>icon</find>
<find>ele</find>
<find>Form</find>
</findStrings> </findStrings>
<replaceStrings>
<replace>MLmodel</replace>
</replaceStrings>
</component> </component>
<component name="Git.Settings"> <component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
@@ -202,29 +226,31 @@
<option value="$PROJECT_DIR$/config/index.js" /> <option value="$PROJECT_DIR$/config/index.js" />
<option value="$PROJECT_DIR$/src/api/api.js" /> <option value="$PROJECT_DIR$/src/api/api.js" />
<option value="$PROJECT_DIR$/src/App.vue" /> <option value="$PROJECT_DIR$/src/App.vue" />
<option value="$PROJECT_DIR$/src/routes.js" />
<option value="$PROJECT_DIR$/src/views/Home.vue" />
<option value="$PROJECT_DIR$/vue_study.md" /> <option value="$PROJECT_DIR$/vue_study.md" />
<option value="$PROJECT_DIR$/src/views/nav1/dailog.vue" /> <option value="$PROJECT_DIR$/src/views/nav1/dailog.vue" />
<option value="$PROJECT_DIR$/src/views/Login.vue" />
<option value="$PROJECT_DIR$/src/views/nav1/Table.vue" /> <option value="$PROJECT_DIR$/src/views/nav1/Table.vue" />
<option value="$PROJECT_DIR$/package.json" />
<option value="$PROJECT_DIR$/src/views/Home.vue" />
<option value="$PROJECT_DIR$/src/views/Login.vue" />
<option value="$PROJECT_DIR$/src/views/nav1/Form.vue" /> <option value="$PROJECT_DIR$/src/views/nav1/Form.vue" />
<option value="$PROJECT_DIR$/src/routes.js" />
<option value="$PROJECT_DIR$/src/views/nav1/Clean.vue" />
<option value="$PROJECT_DIR$/src/views/nav1/MLmodel.vue" />
<option value="$PROJECT_DIR$/fesfe.py" />
<option value="$PROJECT_DIR$/src/views/nav1/user.vue" /> <option value="$PROJECT_DIR$/src/views/nav1/user.vue" />
</list> </list>
</option> </option>
</component> </component>
<component name="ProjectFrameBounds" extendedState="6"> <component name="ProjectFrameBounds">
<option name="x" value="-268" /> <option name="x" value="-8" />
<option name="y" value="27" /> <option name="width" value="1933" />
<option name="width" value="1938" /> <option name="height" value="1038" />
<option name="height" value="1048" />
</component> </component>
<component name="ProjectView"> <component name="ProjectView">
<navigator proportions="" version="1"> <navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" /> <foldersAlwaysOnTop value="true" />
</navigator> </navigator>
<panes> <panes>
<pane id="Scope" />
<pane id="ProjectPane"> <pane id="ProjectPane">
<subPane> <subPane>
<expand> <expand>
@@ -235,31 +261,19 @@
<path> <path>
<item name="AML-frontend" type="b2602c69:ProjectViewProjectNode" /> <item name="AML-frontend" type="b2602c69:ProjectViewProjectNode" />
<item name="AML_frontend" type="462c0819:PsiDirectoryNode" /> <item name="AML_frontend" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" /> <item name="static" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="AML-frontend" type="b2602c69:ProjectViewProjectNode" />
<item name="AML_frontend" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="views" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="AML-frontend" type="b2602c69:ProjectViewProjectNode" />
<item name="AML_frontend" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="views" type="462c0819:PsiDirectoryNode" />
<item name="nav1" type="462c0819:PsiDirectoryNode" />
</path> </path>
</expand> </expand>
<select /> <select />
</subPane> </subPane>
</pane> </pane>
<pane id="Scope" />
</panes> </panes>
</component> </component>
<component name="PropertiesComponent"> <component name="PropertiesComponent">
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" /> <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" /> <property name="WebServerToolWindowFactoryState" value="false" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/Test_Dataset" /> <property name="last_opened_file_path" value="$PROJECT_DIR$/static" />
<property name="node.js.detected.package.eslint" value="true" /> <property name="node.js.detected.package.eslint" value="true" />
<property name="node.js.detected.package.tslint" value="true" /> <property name="node.js.detected.package.tslint" value="true" />
<property name="node.js.path.for.package.eslint" value="project" /> <property name="node.js.path.for.package.eslint" value="project" />
@@ -274,9 +288,12 @@
</component> </component>
<component name="RecentsManager"> <component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS"> <key name="MoveFile.RECENT_KEYS">
<recent name="E:\study\项目\AML_frontend\static" />
<recent name="E:\study\项目\AML_frontend\src\assets" />
<recent name="E:\study\项目\AML_frontend\Test_Dataset" /> <recent name="E:\study\项目\AML_frontend\Test_Dataset" />
</key> </key>
<key name="CopyFile.RECENT_KEYS"> <key name="CopyFile.RECENT_KEYS">
<recent name="E:\study\项目\AML_frontend\static" />
<recent name="E:\study\项目\AML_frontend\Test_Dataset" /> <recent name="E:\study\项目\AML_frontend\Test_Dataset" />
<recent name="E:\study\项目\AML_frontend" /> <recent name="E:\study\项目\AML_frontend" />
</key> </key>
@@ -330,7 +347,17 @@
<workItem from="1613193364112" duration="15888000" /> <workItem from="1613193364112" duration="15888000" />
<workItem from="1613276072538" duration="27499000" /> <workItem from="1613276072538" duration="27499000" />
<workItem from="1613365982541" duration="40722000" /> <workItem from="1613365982541" duration="40722000" />
<workItem from="1613567554397" duration="3910000" /> <workItem from="1613567554397" duration="4149000" />
<workItem from="1613618107192" duration="19458000" />
<workItem from="1613707910563" duration="18185000" />
<workItem from="1613913711701" duration="1211000" />
<workItem from="1614066878978" duration="852000" />
<workItem from="1614263716698" duration="2323000" />
<workItem from="1614308683158" duration="6938000" />
<workItem from="1614862502603" duration="1191000" />
<workItem from="1614936442788" duration="10786000" />
<workItem from="1615182490589" duration="591000" />
<workItem from="1615783114596" duration="8893000" />
</task> </task>
<task id="LOCAL-00001" summary="自动机器学习前端组件"> <task id="LOCAL-00001" summary="自动机器学习前端组件">
<created>1601387458948</created> <created>1601387458948</created>
@@ -374,18 +401,25 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1613465088906</updated> <updated>1613465088906</updated>
</task> </task>
<option name="localTasksCounter" value="7" /> <task id="LOCAL-00007" summary="过渡动画,数据集列表session存储">
<created>1613577068786</created>
<option name="number" value="00007" />
<option name="presentableId" value="LOCAL-00007" />
<option name="project" value="LOCAL" />
<updated>1613577068786</updated>
</task>
<option name="localTasksCounter" value="8" />
<servers /> <servers />
</component> </component>
<component name="TimeTrackingManager"> <component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="150579000" /> <option name="totallyTimeSpent" value="221246000" />
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="-7" y="-7" width="1550" height="838" extended-state="6" /> <frame x="-6" y="0" width="1546" height="830" extended-state="0" />
<editor active="true" /> <editor active="true" />
<layout> <layout>
<window_info content_ui="combo" id="Project" order="0" sideWeight="0.49325627" visible="true" weight="0.1541555" /> <window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.44071588" visible="true" weight="0.20362903" />
<window_info id="Structure" order="1" sideWeight="0.5067437" side_tool="true" visible="true" weight="0.1541555" /> <window_info id="Structure" order="1" sideWeight="0.5592841" side_tool="true" visible="true" weight="0.20362903" />
<window_info id="Favorites" order="2" side_tool="true" /> <window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" /> <window_info anchor="bottom" id="Find" order="1" />
@@ -398,9 +432,9 @@
<window_info anchor="bottom" id="Version Control" order="8" weight="0.32844576" /> <window_info anchor="bottom" id="Version Control" order="8" weight="0.32844576" />
<window_info anchor="bottom" id="Database Changes" order="9" /> <window_info anchor="bottom" id="Database Changes" order="9" />
<window_info anchor="bottom" id="Event Log" order="10" side_tool="true" /> <window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
<window_info active="true" anchor="bottom" id="Terminal" order="11" visible="true" weight="0.23900293" /> <window_info anchor="bottom" id="Terminal" order="11" visible="true" weight="0.33679524" />
<window_info anchor="bottom" id="Python Console" order="12" weight="0.38709676" /> <window_info anchor="bottom" id="Python Console" order="12" weight="0.38709676" />
<window_info anchor="bottom" id="TypeScript" order="13" /> <window_info anchor="bottom" id="TypeScript" order="13" weight="0.32991204" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
@@ -408,8 +442,8 @@
<window_info anchor="right" id="Database" order="4" /> <window_info anchor="right" id="Database" order="4" />
</layout> </layout>
<layout-to-restore> <layout-to-restore>
<window_info content_ui="combo" id="Project" order="0" sideWeight="0.4979757" visible="true" weight="0.103217155" /> <window_info content_ui="combo" id="Project" order="0" sideWeight="0.6086956" visible="true" weight="0.20509383" />
<window_info id="Structure" order="1" sideWeight="0.5020243" side_tool="true" weight="0.18096514" /> <window_info active="true" id="Structure" order="1" sideWeight="0.39130434" side_tool="true" visible="true" weight="0.20509383" />
<window_info id="Favorites" order="2" side_tool="true" /> <window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" /> <window_info anchor="bottom" id="Find" order="1" />
@@ -422,8 +456,9 @@
<window_info anchor="bottom" id="Version Control" order="8" weight="0.32844576" /> <window_info anchor="bottom" id="Version Control" order="8" weight="0.32844576" />
<window_info anchor="bottom" id="Database Changes" order="9" /> <window_info anchor="bottom" id="Database Changes" order="9" />
<window_info anchor="bottom" id="Event Log" order="10" side_tool="true" /> <window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
<window_info active="true" anchor="bottom" id="Terminal" order="11" visible="true" weight="0.27419356" /> <window_info anchor="bottom" id="Terminal" order="11" visible="true" weight="0.29178885" />
<window_info anchor="bottom" id="Python Console" order="12" weight="0.22727273" /> <window_info anchor="bottom" id="Python Console" order="12" weight="0.38709676" />
<window_info anchor="bottom" id="TypeScript" order="13" weight="0.32991204" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
@@ -440,13 +475,14 @@
<MESSAGE value="修改main.js" /> <MESSAGE value="修改main.js" />
<MESSAGE value="数据集上传,数据预览" /> <MESSAGE value="数据集上传,数据预览" />
<MESSAGE value="数据建模页面响应功能完成" /> <MESSAGE value="数据建模页面响应功能完成" />
<option name="LAST_COMMIT_MESSAGE" value="数据建模页面响应功能完成" /> <MESSAGE value="过渡动画,数据集列表session存储" />
<option name="LAST_COMMIT_MESSAGE" value="过渡动画,数据集列表session存储" />
</component> </component>
<component name="XDebuggerManager"> <component name="XDebuggerManager">
<breakpoint-manager> <breakpoint-manager>
<breakpoints> <breakpoints>
<line-breakpoint enabled="true" type="javascript"> <line-breakpoint enabled="true" type="javascript">
<url>file://$PROJECT_DIR$/src/views/nav1/Form.vue</url> <url>file://$PROJECT_DIR$/src/views/nav1/MLmodel.vue</url>
<line>4</line> <line>4</line>
<option name="timeStamp" value="2" /> <option name="timeStamp" value="2" />
</line-breakpoint> </line-breakpoint>
@@ -455,10 +491,10 @@
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/Test_Dataset/day.csv"> <entry file="file://$PROJECT_DIR$/Test_Dataset/day.csv">
<provider selected="true" editor-type-id="csv-text-editor" />
<provider editor-type-id="csv-table-editor"> <provider editor-type-id="csv-table-editor">
<state showInfoPanel="true" fixedHeaders="false" rowLines="3" /> <state showInfoPanel="true" fixedHeaders="false" rowLines="3" />
</provider> </provider>
<provider selected="true" editor-type-id="csv-text-editor" />
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/styles/vars.scss"> <entry file="file://$PROJECT_DIR$/src/styles/vars.scss">
<provider selected="true" editor-type-id="text-editor" /> <provider selected="true" editor-type-id="text-editor" />
@@ -539,13 +575,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/dist/static/js/vendor.0f1354d86ff9bd2ab3e5.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="15456">
<caret line="38" column="63098" selection-start-line="38" selection-start-column="63098" selection-end-line="38" selection-end-column="63098" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/common/js/util.js"> <entry file="file://$PROJECT_DIR$/src/common/js/util.js">
<provider selected="true" editor-type-id="text-editor" /> <provider selected="true" editor-type-id="text-editor" />
</entry> </entry>
@@ -556,14 +585,85 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/views/Main.vue"> <entry file="file://$PROJECT_DIR$/src/views/nav1/dailog.vue" />
<entry file="file://$PROJECT_DIR$/node_modules/_js-base64@3.6.0@js-base64/base64.d.ts">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="253"> <state relative-caret-position="163">
<caret line="11" selection-start-line="11" selection-end-line="11" /> <caret line="92" column="14" selection-start-line="92" selection-start-column="14" selection-end-line="92" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/dist/static/js/vendor.0f1354d86ff9bd2ab3e5.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="343">
<caret line="38" column="420879" selection-start-line="38" selection-start-column="420879" selection-end-line="38" selection-end-column="420879" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="782">
<caret line="34" column="20" selection-start-line="34" selection-start-column="20" selection-end-line="34" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/api/api.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="460">
<caret line="20" column="34" selection-start-line="8" selection-end-line="9" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/assets/logo.png">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/dist/static/img/fontawesome-webfont.912ec66.svg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/static/AMLlogo.png">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/src/assets/user.png">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/src/assets/logo4.png">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://$PROJECT_DIR$/src/assets/bg1.jpg">
<provider selected="true" editor-type-id="images" />
</entry>
<entry file="file://E:/anaconda3/Lib/site-packages/anaconda_navigator/static/css/styles.scss">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="129">
<caret line="18" column="1" selection-start-line="18" selection-start-column="1" selection-end-line="18" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/package.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="112">
<caret line="14" column="21" selection-start-line="14" selection-start-column="21" selection-end-line="14" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vue_study.md">
<provider editor-type-id="text-editor" />
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
<first_editor relative-caret-position="23">
<caret line="1" selection-start-line="1" selection-end-line="1" />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="43">
<caret line="7" column="12" selection-start-line="7" selection-start-column="12" selection-end-line="7" selection-end-column="12" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/views/nav1/dailog.vue" />
<entry file="file://$PROJECT_DIR$/src/App.vue"> <entry file="file://$PROJECT_DIR$/src/App.vue">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="253"> <state relative-caret-position="253">
@@ -581,64 +681,66 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/config/index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="782">
<caret line="34" column="20" selection-start-line="34" selection-start-column="20" selection-end-line="34" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1035">
<caret line="55" column="19" selection-start-line="55" selection-start-column="19" selection-end-line="55" selection-end-column="19" />
<folding>
<element signature="e#0#37#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/api/api.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="460">
<caret line="20" column="34" selection-start-line="8" selection-end-line="9" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vue_study.md">
<provider editor-type-id="text-editor" />
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
<first_editor relative-caret-position="56">
<caret line="113" column="12" selection-start-line="113" selection-start-column="12" selection-end-line="113" selection-end-column="12" />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/views/Login.vue"> <entry file="file://$PROJECT_DIR$/src/views/Login.vue">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="434"> <state relative-caret-position="1104">
<caret line="64" column="32" selection-start-line="64" selection-start-column="32" selection-end-line="64" selection-end-column="32" /> <caret line="48" selection-start-line="48" selection-end-line="48" />
<folding> <folding>
<element signature="n#style#0;n#a#0;n#el-form#0;n#template#0;n#!!top" expanded="true" /> <element signature="n#style#0;n#a#0;n#el-form#0;n#template#0;n#!!top" expanded="true" />
<element signature="n#style#0;n#el-form-item#2;n#el-form#0;n#template#0;n#!!top" expanded="true" /> <element signature="n#style#0;n#el-form-item#2;n#el-form#0;n#template#0;n#!!top" expanded="true" />
<element signature="n#el-form-item#2;n#el-form#0;n#template#0;n#!!top" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/views/Main.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="253">
<caret line="11" selection-start-line="11" selection-end-line="11" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/views/Home.vue"> <entry file="file://$PROJECT_DIR$/src/views/Home.vue">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="966"> <state relative-caret-position="483">
<caret line="75" column="16" selection-start-line="75" selection-start-column="16" selection-end-line="75" selection-end-column="16" /> <caret line="21" column="72" selection-start-line="21" selection-start-column="72" selection-end-line="21" selection-end-column="72" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/LICENSE">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/src/views/nav1/Clean.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="253">
<caret line="11" column="16" selection-start-line="11" selection-start-column="16" selection-end-line="11" selection-end-column="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/fesfe.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="332">
<caret line="45" selection-start-line="45" selection-end-line="52" selection-end-column="50" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/views/nav1/MLmodel.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3220">
<caret line="140" column="34" selection-start-line="140" selection-start-column="34" selection-end-line="140" selection-end-column="34" />
<folding>
<element signature="n#style#0;n#el-form#0;n#template#0;n#!!top" expanded="true" />
<element signature="n#style#0;n#el-col#0;n#el-dialog#0;n#el-form#0;n#template#0;n#!!top" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/static/lzh3_day_csv.html">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/src/views/nav1/Table.vue"> <entry file="file://$PROJECT_DIR$/src/views/nav1/Table.vue">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="323"> <state relative-caret-position="895">
<caret line="96" column="95" selection-start-line="96" selection-start-column="95" selection-end-line="96" selection-end-column="95" /> <caret line="104" selection-start-line="103" selection-end-line="104" />
<folding> <folding>
<element signature="n#style#0;n#span#0;n#section#0;n#template#0;n#!!top" expanded="true" /> <element signature="n#style#0;n#span#0;n#section#0;n#template#0;n#!!top" expanded="true" />
<element signature="n#style#0;n#el-table#0;n#section#0;n#template#0;n#!!top" expanded="true" /> <element signature="n#style#0;n#el-table#0;n#section#0;n#template#0;n#!!top" expanded="true" />
@@ -648,20 +750,11 @@
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/views/nav1/user.vue"> <entry file="file://$PROJECT_DIR$/src/views/nav1/user.vue">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="201"> <state relative-caret-position="109">
<caret line="60" column="75" selection-start-line="60" selection-start-column="75" selection-end-line="60" selection-end-column="75" /> <caret line="94" column="44" lean-forward="true" selection-start-line="94" selection-start-column="44" selection-end-line="94" selection-end-column="44" />
<folding> <folding>
<element signature="n#style#0;n#el-table#0;n#template#0;n#section#0;n#template#0;n#!!top" expanded="true" /> <element signature="n#style#0;n#el-table#0;n#template#0;n#section#0;n#template#0;n#!!top" expanded="true" />
</folding> <element signature="n#style#0;n#iframe#0;n#!!top" expanded="true" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/views/nav1/Form.vue">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="230">
<caret line="154" column="23" lean-forward="true" selection-start-line="154" selection-start-column="23" selection-end-line="154" selection-end-column="23" />
<folding>
<element signature="n#style#0;n#el-col#0;n#el-dialog#0;n#el-form#0;n#template#0;n#!!top" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
+1
View File
@@ -14,6 +14,7 @@
"echarts": "^3.3.2", "echarts": "^3.3.2",
"element-ui": "^1.2.8", "element-ui": "^1.2.8",
"font-awesome": "^4.7.0", "font-awesome": "^4.7.0",
"js-base64": "^3.6.0",
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
"vue": "^2.2.2", "vue": "^2.2.2",
"vue-router": "^2.3.0", "vue-router": "^2.3.0",
+4 -2
View File
@@ -3,8 +3,9 @@ import NotFound from './views/404.vue'
import Home from './views/Home.vue' import Home from './views/Home.vue'
import Main from './views/Main.vue' import Main from './views/Main.vue'
import Table from './views/nav1/Table.vue' import Table from './views/nav1/Table.vue'
import Form from './views/nav1/Form.vue' import MLmodel from './views/nav1/MLmodel.vue'
import user from './views/nav1/user.vue' import user from './views/nav1/user.vue'
import Clean from './views/nav1/Clean.vue'
import Page4 from './views/nav2/Page4.vue' import Page4 from './views/nav2/Page4.vue'
import Page5 from './views/nav2/Page5.vue' import Page5 from './views/nav2/Page5.vue'
import Page6 from './views/nav3/Page6.vue' import Page6 from './views/nav3/Page6.vue'
@@ -33,7 +34,8 @@ let routes = [
{ path: '/main', component: Main, name: '主页', hidden: true }, { path: '/main', component: Main, name: '主页', hidden: true },
{ path: '/table', component: Table, name: '我的数据集' }, { path: '/table', component: Table, name: '我的数据集' },
{ path: '/user', component: user, name: '数据预览' }, { path: '/user', component: user, name: '数据预览' },
{ path: '/form', component: Form, name: '快速建模' }, { path:'/clean', component: Clean, name:'数据清洗'},
{ path: '/MLmodel', component: MLmodel, name: '快速建模' },
] ]
}, },
+24 -8
View File
@@ -1,5 +1,6 @@
<template> <template>
<el-row class="container"> <el-row class="container">
<!-- header-->
<el-col :span="24" class="header"> <el-col :span="24" class="header">
<el-col :span="10" class="logo" :class="collapsed? 'logo-collapse-width':'logo-width'"> <el-col :span="10" class="logo" :class="collapsed? 'logo-collapse-width':'logo-width'">
{{collapsed?'':sysName}} {{collapsed?'':sysName}}
@@ -10,21 +11,26 @@
</div> </div>
</el-col> </el-col>
<el-col :span="4" class="userinfo"> <el-col :span="4" class="userinfo">
<el-dropdown trigger="hover"> <el-dropdown trigger="hover">
<span class="el-dropdown-link userinfo-inner"><img :src="this.sysUserAvatar" /> {{sysUserName}}</span> <span class="el-dropdown-link userinfo-inner">
<i class="el-icon-setting">&nbsp;&nbsp;欢迎{{sysUserName}}</i>
</span>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item>我的消息</el-dropdown-item>
<el-dropdown-item>设置</el-dropdown-item> <el-dropdown-item>设置</el-dropdown-item>
<el-dropdown-item>升级VIP</el-dropdown-item>
<el-dropdown-item divided @click.native="logout">退出登录</el-dropdown-item> <el-dropdown-item divided @click.native="logout">退出登录</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</el-col> </el-col>
</el-col> </el-col>
<!-- 侧边栏-->
<el-col :span="24" class="main"> <el-col :span="24" class="main">
<aside :class="collapsed?'menu-collapsed':'menu-expanded'"> <aside :class="collapsed?'menu-collapsed':'menu-expanded'">
<!--导航菜单--> <!--导航菜单-->
<el-menu :default-active="$route.path" class="el-menu-vertical-demo" @open="handleopen" @close="handleclose" @select="handleselect" <el-menu :default-active="$route.path" class="el-menu-vertical-demo" @open="handleopen" @close="handleclose" @select="handleselect"
unique-opened router v-show="!collapsed"> unique-opened router v-if="!collapsed">
<template v-for="(item,index) in $router.options.routes" v-if="!item.hidden"> <template v-for="(item,index) in $router.options.routes" v-if="!item.hidden">
<el-submenu :index="index+''" v-if="!item.leaf"> <el-submenu :index="index+''" v-if="!item.leaf">
<template slot="title"><i :class="item.iconCls"></i>{{item.name}}</template> <template slot="title"><i :class="item.iconCls"></i>{{item.name}}</template>
@@ -34,7 +40,7 @@
</template> </template>
</el-menu> </el-menu>
<!--导航菜单-折叠后--> <!--导航菜单-折叠后-->
<ul class="el-menu el-menu-vertical-demo collapsed" v-show="collapsed" ref="menuCollapsed"> <ul class="el-menu el-menu-vertical-demo collapsed" v-if="collapsed" ref="menuCollapsed">
<li v-for="(item,index) in $router.options.routes" v-if="!item.hidden" class="el-submenu item"> <li v-for="(item,index) in $router.options.routes" v-if="!item.hidden" class="el-submenu item">
<template v-if="!item.leaf"> <template v-if="!item.leaf">
<div class="el-submenu__title" style="padding-left: 20px;" @mouseover="showMenu(index,true)" @mouseout="showMenu(index,false)"><i :class="item.iconCls"></i></div> <div class="el-submenu__title" style="padding-left: 20px;" @mouseover="showMenu(index,true)" @mouseout="showMenu(index,false)"><i :class="item.iconCls"></i></div>
@@ -44,7 +50,9 @@
</template> </template>
<template v-else> <template v-else>
<li class="el-submenu"> <li class="el-submenu">
<div class="el-submenu__title el-menu-item" style="padding-left: 20px;height: 56px;line-height: 56px;padding: 0 20px;" :class="$route.path==item.children[0].path?'is-active':''" @click="$router.push(item.children[0].path)"><i :class="item.iconCls"></i></div> <div class="el-submenu__title el-menu-item" style="padding-left: 20px;height: 56px;line-height: 56px;padding: 0 20px;" :class="$route.path==item.children[0].path?'is-active':''" @click="$router.push(item.children[0].path)">
<i :class="item.iconCls"></i>
</div>
</li> </li>
</template> </template>
</li> </li>
@@ -77,7 +85,7 @@
return { return {
sysName:'ML代码生成平台', sysName:'ML代码生成平台',
collapsed:false, collapsed:false,
sysUserName: '', sysUserName:sessionStorage.getItem('user'),
sysUserAvatar: '', sysUserAvatar: '',
form: { form: {
name: '', name: '',
@@ -127,10 +135,11 @@
}, },
mounted() { mounted() {
var user = sessionStorage.getItem('user'); var user = sessionStorage.getItem('user');
console.log("user:"+user)
if (user) { if (user) {
user = JSON.parse(user); user = JSON.parse(user);
this.sysUserName = user.name || ''; console.log(user)
this.sysUserAvatar = user.avatar || ''; this.sysUserName = user
} }
} }
@@ -151,10 +160,17 @@
line-height: 60px; line-height: 60px;
background: $color-primary; background: $color-primary;
color:#fff; color:#fff;
.username{
text-align: right;
padding-right: 35px;
float:left;
}
.userinfo { .userinfo {
text-align: right; text-align: right;
padding-right: 35px; padding-right: 35px;
float: right; float: right;
.userinfo-inner { .userinfo-inner {
cursor: pointer; cursor: pointer;
color:#fff; color:#fff;
+141 -35
View File
@@ -1,7 +1,7 @@
<template> <template>
<el-form :model="ruleForm2" :rules="rulesLogin" ref="ruleForm2" label-position="left" label-width="0px" <el-form :model="ruleForm2" :rules="rulesLogin" ref="ruleForm2" label-position="left" label-width="0px"
class="demo-ruleForm login-container"> class="demo-ruleForm login-container">
<h3 class="title">系统登录</h3> <h3 class="title">机器学习代码生成器-登录</h3>
<el-form-item prop="account"> <el-form-item prop="account">
<el-input type="text" v-model="ruleForm2.account" auto-complete="off" placeholder="账号"></el-input> <el-input type="text" v-model="ruleForm2.account" auto-complete="off" placeholder="账号"></el-input>
</el-form-item> </el-form-item>
@@ -10,7 +10,6 @@
</el-form-item> </el-form-item>
<el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox>
<a href="#" @click="handleRegist" style="margin-left:25%">没有账号立即注册</a> <a href="#" @click="handleRegist" style="margin-left:25%">没有账号立即注册</a>
<el-form-item style="width:100%;"> <el-form-item style="width:100%;">
<el-button type="primary" style="width:100%;" @click.native.prevent="handleSubmit2" :loading="logining">登录 <el-button type="primary" style="width:100%;" @click.native.prevent="handleSubmit2" :loading="logining">登录
@@ -21,27 +20,27 @@
<!-- 注册弹框--> <!-- 注册弹框-->
<el-dialog title="注册" :visible.sync="dialogVisible" :close-on-click-modal="true" :modal="true" <el-dialog title="注册" :visible.sync="dialogVisible" :close-on-click-modal="true" :modal="true"
:show-close="true" :center="true"> :show-close="true" :center="true">
<el-form :model="registform" :rules="rulesRegist" :label-position="left"> <el-form :model="registform" :rules="rulesRegist" ref="registform" label-position="left">
<el-form-item label="用户名"> <el-form-item label="用户名" prop="username">
<el-input v-model="registform.username" type="text"></el-input> <el-input v-model="registform.username" type="text"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="密码"> <el-form-item label="密码" prop="password">
<el-input v-model="registform.password" type="password"></el-input> <el-input v-model="registform.password" type="password"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="确认密码"> <el-form-item label="确认密码" prop="checkpassword">
<el-input v-model="registform.checkpassword" type="password"></el-input> <el-input v-model="registform.checkpassword" type="password"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="注册邮箱"> <el-form-item label="注册邮箱" prop="email">
<el-input v-model="registform.email" type="email"></el-input> <el-input v-model="registform.email" type="email"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="验证码"> <el-form-item label="验证码" prop="checkcode">
<el-input v-mode="registform.checkcode"></el-input> <el-input v-model="registform.checkcode"></el-input>
<el-button type="original">获取验证码</el-button> <el-button type="original" @click="getCode" :disabled="isDiabled">{{buttonName}}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button> <el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="dialogVisible = false">立即注册</el-button> <el-button type="primary" @click.native.prevent="handleRegistSubmit">立即注册</el-button>
</span> </span>
</el-dialog> </el-dialog>
</el-form> </el-form>
@@ -51,21 +50,61 @@
</template> </template>
<script> <script>
import axios from 'axios'
axios.defaults.withCredentials=true;
//import NProgress from 'nprogress' //import NProgress from 'nprogress'
let Base64 = require('js-base64').Base64
export default { export default {
data() { data() {
var validateNull=(rule,value,callback)=>{
var validatePassword=(rule,value,callback)=>{
if (value===''){
callback(new Error("输入不能为空!"))
}else if (this.registform.password!=value){
callback(new Error("两次密码输入不一致"))
} else {
callback()
}
};
var validateUserExist=(rule,value,callback)=>{
if (value===''){ if (value===''){
callback(new Error("输入不能为空!")) callback(new Error("输入不能为空!"))
} }
axios.post("/api/check_exist",{
"query_dict":{"username":value}
}).then((response)=>{
var data=response.data
if (data.msg===true){
callback(new Error("该用户名已存在"))
}
else
callback()
})
}; };
var validateEmailExist=(rule,value,callback)=>{
if (value===''){
callback(new Error("输入不能为空!"))
}
axios.post("/api/check_exist",{
"query_dict":{"email":value}
}).then((response)=>{
var data=response.data
if (data.msg){
callback(new Error("该邮箱号已注册"))
}else
callback()
})
}
return { return {
logining: false, logining: false,
ruleForm2: { ruleForm2: {
account: 'admin', account: '',
checkPass: '123456' checkPass: ''
}, },
rulesLogin: { rulesLogin: {
account: [ account: [
@@ -74,20 +113,9 @@
], ],
checkPass: [ checkPass: [
{required: true, message: '请输入密码', trigger: 'blur'}, {required: true, message: '请输入密码', trigger: 'blur'},
//{ validator: validaePass2 }
] ]
}, },
rulesRegist:{
username:[
{required:true,message:'请输入用户名',trigger:'blur'},
{min:1,max:16,message:"长度在1-16个字符",trigger:'blur'}
],
password:[
{required:true,message:'请输入密码',trigger:'blur'},
{min:6,max:16,message:"长度在6-16个字符",trigger:'blur'}
]
},
checked: false,
registform: { registform: {
username: '', username: '',
password: '', password: '',
@@ -95,6 +123,31 @@
email: '', email: '',
checkcode: '' checkcode: ''
}, },
rulesRegist:{
username:[
{required: true, message:'请输入用户名', trigger:'blur'},
{min:1, max:16, message:"长度在1-16个字符", trigger:'blur'},
{validator:validateUserExist,trigger:'blur'}
],
password:[
{required:true,message:'请输入密码',trigger:'blur'},
{min:6,max:16,message:"长度在6-16个字符",trigger:'blur'}
],
checkpassword:[
{validator:validatePassword}
],
email:[
{ required: true, message: '请输入邮箱地址', trigger: 'blur' },
{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] },
{validator:validateEmailExist,trigger:'blur'}
],
checkcode:[
{required: true, message: '请输入验证码', trigger: 'blur'}
]
},
checked: false,
isDiabled:false,//验证码发送按钮
buttonName:"获取验证码",
dialogVisible: false dialogVisible: false
}; };
}, },
@@ -105,29 +158,82 @@
handleReset2() { handleReset2() {
this.$refs.ruleForm2.resetFields(); this.$refs.ruleForm2.resetFields();
}, },
handleSubmit2: function (ev) { handleSubmit2(ev) {
var _this = this; var _this = this;
this.$refs.ruleForm2.validate((valid) => { this.$refs.ruleForm2.validate((valid) => {
if (valid) { if (valid) {
//_this.$router.replace('/table'); //_this.$router.replace('/table');
this.logining = true; this.logining = true;
//NProgress.start(); axios.post("/api/login",{
var loginParams = {
username: this.ruleForm2.account, username: this.ruleForm2.account,
password: this.ruleForm2.checkPass password: Base64.encode(this.ruleForm2.checkPass)
}; }).then((response)=>{
var data=response.data
if (data.msg===true) {
this.logining = false; this.logining = false;
var user = 'admin' var user =this.ruleForm2.account
console.log(user)
sessionStorage.setItem('user', JSON.stringify(user)); sessionStorage.setItem('user', JSON.stringify(user));
sessionStorage.setItem('dataset_name', '') sessionStorage.setItem('dataset_name', '')
this.$router.push({path: '/table'}); this.$router.push({path: '/table'});
this.$message.success("登录成功")
}else {
this.logining = false;
this.$message.error("用户名或密码错误,登录失败")
}
})
} else { } else {
console.log('error submit!!'); console.log('error submit!!');
this.$message.error("用户名或密码错误,登录失败")
return false; return false;
} }
}); })},
handleRegistSubmit(){
var _this = this;
var flag=false
this.$refs.registform.validate((valid) => {
if (valid) {
console.log("表单校验通过!")
flag=true
axios.post('/api/regist',{
username:this.registform.username,
password:Base64.encode(this.registform.password),
email:this.registform.email,
checkcode:this.registform.checkcode
}).then((response)=> {
var data=response.data
this.$refs['registform'].resetFields()
this.dialogVisible=false
this.$message.success(data.msg)
}).catch((error)=>{
console.log(error.response.data)
var data=error.response.data
this.$message.error(data.msg)
})
} else {
this.$message.error("请先正确填写表单")
}
})
},
getCode(){
let me = this;
this.isDiabled=true
axios.post('api/send_code',{
"email":this.registform.email
})
var totalTime=60
let clock=window.setInterval(()=>{
totalTime--
this.buttonName=totalTime+ "s后重新发送"
if (totalTime < 0) { //当倒计时小于0时清除定时器
window.clearInterval(clock)
this.buttonName= '重新获取验证码'
totalTime = 60
this.isDiabled=false
}
},1000)
} }
} }
} }
+64
View File
@@ -0,0 +1,64 @@
<template>
<!--工具条-->
<el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
<el-select v-model="value" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-button type="primary" @click="add_step">添加步骤</el-button>
</el-col>
</template>
<script>
export default {
name: "Clean",
data(){
return{
options:[],
value:"",
cols: [],
tableData: [],
isloading:false
}
},
created(){
this.get_datasets()
},
methods:{
get_datasets(){
var original=JSON.parse(sessionStorage.getItem("dataset_list"))
console.log(original)
for (var dataset of original){
this.options.push({
label:dataset,
value:dataset
})
}
},
get_dataset_cols(dataset_name){
axios.get('api/show_dataset?username='+sessionStorage.getItem('user')+'&dataset_name='+dataset_name)
.then((response)=>{
var body_data= response.data.data
var columns=body_data.cols
sessionStorage.setItem("dataset_cols",JSON.stringify(columns))
sessionStorage.setItem("dataset_name",dataset_name)
})
},
add_step(){
}
}
}
</script>
<style scoped>
</style>
@@ -81,7 +81,7 @@
<el-col style="white-space: pre-wrap;">{{original_code}}</el-col> <el-col style="white-space: pre-wrap;">{{original_code}}</el-col>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button> <el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="dialogVisible = false">导出文件</el-button> <el-button type="primary" @click="onExportCode">导出文件</el-button>
</span> </span>
</el-dialog> </el-dialog>
</el-form> </el-form>
@@ -89,6 +89,7 @@
<script> <script>
import axios from 'axios' import axios from 'axios'
axios.defaults.withCredentials=true;
export default { export default {
inject:['reload'], inject:['reload'],
@@ -136,7 +137,7 @@
onSubmit() { onSubmit() {
console.log('submit!'); console.log('submit!');
axios.post('/api/generate_code',{ axios.post('/api/generate_code',{
username:"admin", username:JSON.parse(sessionStorage.getItem('user')),
data:this.form data:this.form
}).then((response)=>{ }).then((response)=>{
var code=response.data.data var code=response.data.data
@@ -159,8 +160,9 @@
this.dataset_cols=[] this.dataset_cols=[]
this.target_cols=[] this.target_cols=[]
this.tableData=[] this.tableData=[]
axios.get('api/show_dataset?dataset_name='+dataset_name) axios.get('api/show_dataset?username='+sessionStorage.getItem('user')+'&dataset_name='+dataset_name)
.then((response)=>{ .then((response)=>{
var body_data= response.data.data var body_data= response.data.data
var columns=body_data.cols var columns=body_data.cols
for(var column of columns){ for(var column of columns){
@@ -204,6 +206,32 @@
} }
} }
},
//
onExportCode(){
axios.get('/api/export_code',{
params: {
username: JSON.parse(sessionStorage.getItem('user')),
name: this.form.name,
dataset_name: this.form.dataset_name
},
}).then((response)=>{
let url = window.URL.createObjectURL(new Blob([response.data]));
// a
let link = document.createElement("a");
link.style.display = "none";
link.href = url;
//
let timestamp=new Date().getTime();
link.download = "generate_"+JSON.parse(sessionStorage.getItem('user'))+"_"+this.form.name + ".py";
document.body.appendChild(link);
link.click();
}).catch(error => {
this.$message.error("下载失败")
})
} }
} }
} }
+9 -4
View File
@@ -5,6 +5,7 @@
drag drag
accept=".csv, .txt, .xls, .xlsx" accept=".csv, .txt, .xls, .xlsx"
action="/api/upload_dataset" action="/api/upload_dataset"
:data="user_info"
:limit="1" :limit="1"
:before-upload="beforeUpload" :before-upload="beforeUpload"
:on-success="handleAvatarSuccess" :on-success="handleAvatarSuccess"
@@ -52,7 +53,10 @@
return { return {
tableData: [], tableData: [],
list:"name", list:"name",
isloading:false isloading:false,
user_info:{
"username":sessionStorage.getItem('user')
}
} }
}, },
@@ -78,7 +82,8 @@
//获取用户的所有数据集 //获取用户的所有数据集
data_list(){ data_list(){
var dataset_list=[] var dataset_list=[]
axios.get('/api/get_data_list') var username=sessionStorage.getItem('user')
axios.get('/api/get_data_list?username='+username)
.then((response)=>{ .then((response)=>{
this.isloading=true this.isloading=true
var original=response.data.data var original=response.data.data
@@ -142,8 +147,8 @@
del(row,i){ del(row,i){
console.log(row.name,i) console.log(row.name,i)
axios.post('/api/del_dataset',{ axios.post('/api/del_dataset',{
username:"admin", dataset_name:row.name,
dataset_name:row.name username:sessionStorage.getItem('user')
}).then((response)=> { }).then((response)=> {
console.log("查看返回值:",response.data) console.log("查看返回值:",response.data)
var body=response.data var body=response.data
+43 -12
View File
@@ -3,7 +3,7 @@
<!--工具条--> <!--工具条-->
<el-col :span="24" class="toolbar" style="padding-bottom: 0px;"> <el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
<el-select v-model="value" placeholder="请选择"> <el-select v-model="value" placeholder="请选择" @change="on_dataset_change">
<el-option <el-option
v-for="item in options" v-for="item in options"
:key="item.value" :key="item.value"
@@ -13,6 +13,10 @@
</el-select> </el-select>
<el-button type="primary" @click="show_dataset">查看</el-button> <el-button type="primary" @click="show_dataset">查看</el-button>
<el-button type="" @click="show_dataset_report" :loading="isloading" plain>生成报告</el-button>
<!-- 数据分析报告展示区域-->
<el-col v-html="frame"></el-col>
</el-col> </el-col>
<!--列表--> <!--列表-->
@@ -21,7 +25,8 @@
v-loading="isloading" v-loading="isloading"
element-loading-text="正在拼命加载"> element-loading-text="正在拼命加载">
<template v-for="(col ,index) in cols"> <template v-for="(col ,index) in cols">
<el-table-column v-if="col.type==='sort'" :prop="col.prop" sortable :label="col.label"></el-table-column> <el-table-column v-if="col.type==='sort'" :prop="col.prop" sortable
:label="col.label"></el-table-column>
</template> </template>
</el-table> </el-table>
@@ -30,9 +35,9 @@
</section> </section>
</template> </template>
<script> <script>
import { getUserList } from '../../api/api';
import axios from 'axios' import axios from 'axios'
import Table from './Table.vue'
axios.defaults.withCredentials = true;
//import NProgress from 'nprogress' //import NProgress from 'nprogress'
export default { export default {
@@ -42,8 +47,10 @@
value: "", value: "",
cols: [], cols: [],
tableData: [], tableData: [],
isloading:true isloading: false,
dialogVisible: false,
content: "",
frame: ''
} }
}, },
inject: ['reload'], inject: ['reload'],
@@ -57,7 +64,6 @@
}, },
methods: { methods: {
get_datasets() { get_datasets() {
var original = JSON.parse(sessionStorage.getItem("dataset_list")) var original = JSON.parse(sessionStorage.getItem("dataset_list"))
console.log(original) console.log(original)
for (var dataset of original) { for (var dataset of original) {
@@ -66,15 +72,20 @@
value: dataset value: dataset
}) })
} }
},
//数据集发生变化时,隐藏生成报告的iframe
on_dataset_change(){
this.frame=""
sessionStorage.setItem("dataset_name",this.value)
this.show_dataset()
}, },
show_dataset() { show_dataset() {
this.cols = [] this.cols = []
this.tableData = [] this.tableData = []
var username = sessionStorage.getItem('user')
this.isloading = true this.isloading = true
axios.get('api/show_dataset?dataset_name='+this.value) axios.get('api/show_dataset?username=' + username + "&dataset_name=" + this.value)
.then((response) => { .then((response) => {
this.isloading=true
var body = response.data var body = response.data
var body_data = response.data.data var body_data = response.data.data
var columns = body_data.cols var columns = body_data.cols
@@ -98,7 +109,8 @@
//按行添加 //按行添加
var row = {} var row = {}
for (var column of columns) { for (var column of columns) {
row[column]=body_data[column][i] var cell = body_data[column][i]
row[column] = cell ? cell: ""
} }
this.tableData.push(row) this.tableData.push(row)
} }
@@ -106,8 +118,27 @@
this.isloading = false this.isloading = false
}).catch((error) => { }).catch((error) => {
this.isloading = false this.isloading = false
console.log(error)
}) })
} },
show_dataset_report() {
this.dialogVisible = false
this.isloading = true
var username = sessionStorage.getItem('user')
axios.get('api/show_dataset_report?username=' + username + "&dataset_name=" + this.value)
.then((response) => {
var html_name = response.data.data
var insert_iframe = '<iframe src="../../../static/'+html_name+
'" scrolling="yes" style="width: 100%;height: 500px;" frameborder="0"></iframe>'
this.frame=insert_iframe
console.log("生成成功")
this.dialogVisible = true
this.isloading = false
}).catch((error) => {
console.log("报告生成失败")
this.isloading = false
})
},
}, },
}; };
Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB