Commit 1e90e94c authored by nano's avatar nano

sos login

parent 9be8fb1b
......@@ -2,8 +2,25 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="7dc474d0-9fc0-4b76-8c2f-3c98df702116" name="Default" comment="">
<change type="DELETED" beforePath="$PROJECT_DIR$/src/assets/yay.jpg" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/src/models/example.js" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/src/routes/IndexPage.css" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/src/routes/IndexPage.js" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/src/routes/Login.css" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/src/routes/Login.js" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/src/services/example.js" afterPath="" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/config.js" afterPath="$PROJECT_DIR$/src/config.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/models/App.js" afterPath="$PROJECT_DIR$/src/models/App.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/models/Apps.js" afterPath="$PROJECT_DIR$/src/models/Apps.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/models/Common.js" afterPath="$PROJECT_DIR$/src/models/Common.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/models/user.js" afterPath="$PROJECT_DIR$/src/models/user.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/router.js" afterPath="$PROJECT_DIR$/src/router.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/routes/AppDetail.js" afterPath="$PROJECT_DIR$/src/routes/AppDetail.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/routes/Apps.js" afterPath="$PROJECT_DIR$/src/routes/Apps.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/routes/LoginCallback.js" afterPath="$PROJECT_DIR$/src/routes/LoginCallback.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/services/Apps.js" afterPath="$PROJECT_DIR$/src/services/Apps.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/services/Packages.js" afterPath="$PROJECT_DIR$/src/services/Packages.js" />
</list>
<ignored path="$PROJECT_DIR$/.tmp/" />
<ignored path="$PROJECT_DIR$/temp/" />
......@@ -20,15 +37,43 @@
<favorites_list name="moecube-console-web" />
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300" />
<leaf>
<file leaf-file-name="Common.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/models/Common.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="390">
<caret line="40" column="0" lean-forward="false" selection-start-line="40" selection-start-column="0" selection-end-line="40" selection-end-column="0" />
<folding>
<element signature="e#0#38#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="AppDetail.js" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/routes/AppDetail.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="307">
<caret line="143" column="41" lean-forward="true" selection-start-line="143" selection-start-column="41" selection-end-line="143" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Packages.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/services/Packages.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162">
<caret line="9" column="0" lean-forward="false" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>isMounte</find>
<find>isMounted</find>
<find>isdanger</find>
<find>width=&quot;100%&quot; height=&quot;100%&quot;</find>
<find>radio</find>
<find>console</find>
<find>pack</find>
<find>upload</find>
......@@ -54,6 +99,11 @@
<find>url</find>
<find>disable</find>
<find>delete</find>
<find>action</find>
<find>collapsed</find>
<find>\n \}\,</find>
<find>isCreate</find>
<find>status</find>
</findStrings>
</component>
<component name="Git.Settings">
......@@ -62,10 +112,7 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/models/Common.js" />
<option value="$PROJECT_DIR$/src/models/App.js" />
<option value="$PROJECT_DIR$/src/components/App/Create.js" />
<option value="$PROJECT_DIR$/src/router.js" />
<option value="$PROJECT_DIR$/.roadhogrc" />
<option value="$PROJECT_DIR$/public/index.html" />
<option value="$PROJECT_DIR$/src/components/Common/Nav.js" />
......@@ -73,10 +120,21 @@
<option value="$PROJECT_DIR$/src/utils/request.js" />
<option value="$PROJECT_DIR$/src/index.js" />
<option value="$PROJECT_DIR$/src/routes/Entry.js" />
<option value="$PROJECT_DIR$/src/models/Apps.js" />
<option value="$PROJECT_DIR$/src/routes/AppDetail.less" />
<option value="$PROJECT_DIR$/src/services/Packages.js" />
<option value="$PROJECT_DIR$/src/models/packages.js" />
<option value="$PROJECT_DIR$/src/services/Packages.js" />
<option value="$PROJECT_DIR$/src/services/example.js" />
<option value="$PROJECT_DIR$/src/router.js" />
<option value="$PROJECT_DIR$/src/routes/Login.css" />
<option value="$PROJECT_DIR$/src/routes/Login.js" />
<option value="$PROJECT_DIR$/src/config.js" />
<option value="$PROJECT_DIR$/src/models/user.js" />
<option value="$PROJECT_DIR$/src/routes/LoginCallback.js" />
<option value="$PROJECT_DIR$/src/routes/Apps.js" />
<option value="$PROJECT_DIR$/src/models/App.js" />
<option value="$PROJECT_DIR$/src/services/Apps.js" />
<option value="$PROJECT_DIR$/src/models/Apps.js" />
<option value="$PROJECT_DIR$/src/models/Common.js" />
<option value="$PROJECT_DIR$/src/routes/AppDetail.js" />
</list>
</option>
......@@ -93,8 +151,8 @@
<handled-path value="$PROJECT_DIR$/node_modules" />
</component>
<component name="ProjectFrameBounds">
<option name="x" value="296" />
<option name="y" value="23" />
<option name="x" value="274" />
<option name="y" value="95" />
<option name="width" value="1383" />
<option name="height" value="968" />
</component>
......@@ -113,8 +171,6 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scratches" />
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<PATH>
......@@ -197,6 +253,8 @@
</PATH>
</subPane>
</pane>
<pane id="Scope" />
<pane id="Scratches" />
</panes>
</component>
<component name="PropertiesComponent">
......@@ -264,6 +322,12 @@
<method />
</configuration>
<configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
<node-interpreter>project</node-interpreter>
<node-options />
<gulpfile />
<tasks />
<arguments />
<envs />
<method />
</configuration>
<configuration default="true" type="js.build_tools.npm" factoryName="npm">
......@@ -299,34 +363,36 @@
<updated>1492397512644</updated>
<workItem from="1492397516564" duration="4541000" />
<workItem from="1492407287300" duration="48898000" />
<workItem from="1492655820276" duration="10789000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="53439000" />
<option name="totallyTimeSpent" value="64228000" />
</component>
<component name="ToolWindowManager">
<frame x="296" y="23" width="1383" height="968" extended-state="0" />
<frame x="274" y="95" width="1383" height="968" extended-state="0" />
<editor active="true" />
<layout>
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="DB Browser" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32966226" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="DB Execution Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32990867" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="npm" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32966226" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32990867" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33333334" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="TypeScript" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2572707" sideWeight="0.49315068" order="0" side_tool="false" content_ui="combo" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24981357" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.33333334" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="TypeScript" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25697502" sideWeight="0.49315068" order="0" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25354213" sideWeight="0.5068493" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25354213" sideWeight="0.5068493" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24981357" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
</layout>
</component>
......@@ -348,6 +414,8 @@
<option value="$PROJECT_DIR$/../moecube-console/package/main.js.map" />
<option value="$PROJECT_DIR$/../moecube-console/package/utils.js" />
<option value="$PROJECT_DIR$/../moecube-console/package/main.js" />
<option value="$PROJECT_DIR$/../moecube-console/src/routes/package.js" />
<option value="$PROJECT_DIR$/../moecube-console/src/routes/package.js.map" />
</list>
</option>
</component>
......@@ -359,14 +427,6 @@
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/app.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/package.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
......@@ -413,9 +473,7 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="9" column="10" lean-forward="true" selection-start-line="9" selection-start-column="10" selection-end-line="9" selection-end-column="10" />
<folding>
<element signature="e#0#26#0" expanded="false" />
</folding>
<folding />
</state>
</provider>
</entry>
......@@ -431,7 +489,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="16" column="0" lean-forward="true" selection-start-line="16" selection-start-column="0" selection-end-line="16" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
......@@ -443,65 +500,10 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/Login.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/IndexPage.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/LoginCallback.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#0#26#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/Login.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#0#26#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/Apps/All.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-159">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#0#26#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/Apps.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/components/App/Create.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162">
<caret line="9" column="4" lean-forward="false" selection-start-line="9" selection-start-column="4" selection-end-line="9" selection-end-column="4" />
<folding />
</state>
</provider>
</entry>
......@@ -509,7 +511,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198">
<caret line="11" column="0" lean-forward="true" selection-start-line="11" selection-start-column="0" selection-end-line="11" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
......@@ -525,23 +526,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="54">
<caret line="3" column="0" lean-forward="true" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/config.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="6" column="1" lean-forward="false" selection-start-line="6" selection-start-column="1" selection-end-line="6" selection-end-column="1" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/dva/router.d.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="6" column="9" lean-forward="false" selection-start-line="6" selection-start-column="9" selection-end-line="6" selection-end-column="9" />
<folding />
</state>
</provider>
</entry>
......@@ -553,29 +537,11 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/components/Example.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="10" column="21" lean-forward="true" selection-start-line="10" selection-start-column="21" selection-end-line="10" selection-end-column="21" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/components/Common/Nav.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="176">
<caret line="25" column="12" lean-forward="true" selection-start-line="25" selection-start-column="12" selection-end-line="25" selection-end-column="12" />
<folding>
<element signature="e#0#26#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/components/Example.js" />
<entry file="file://$PROJECT_DIR$/src/components/Common/EditableCell.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="684">
<caret line="38" column="20" lean-forward="true" selection-start-line="38" selection-start-column="20" selection-end-line="38" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
......@@ -583,7 +549,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
......@@ -599,17 +564,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="5" column="34" lean-forward="true" selection-start-line="5" selection-start-column="34" selection-end-line="5" selection-end-column="34" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/utils/request.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252">
<caret line="14" column="46" lean-forward="true" selection-start-line="14" selection-start-column="46" selection-end-line="14" selection-end-column="46" />
<folding>
<element signature="e#0#30#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
......@@ -655,6 +609,53 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/antd/lib/input/Input.d.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="124">
<caret line="60" column="6" lean-forward="true" selection-start-line="60" selection-start-column="6" selection-end-line="60" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/antd/lib/form/Form.d.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="73" column="21" lean-forward="false" selection-start-line="73" selection-start-column="21" selection-end-line="73" selection-end-column="21" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/dva/dist/dva.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="7595" column="11" lean-forward="false" selection-start-line="7595" selection-start-column="11" selection-end-line="7595" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/yarn.lock">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="1065" column="16" lean-forward="false" selection-start-line="1065" selection-start-column="16" selection-end-line="1065" selection-end-column="16" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/example.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="378">
<caret line="21" column="6" lean-forward="true" selection-start-line="21" selection-start-column="6" selection-end-line="21" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/services/example.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="18">
<caret line="1" column="0" lean-forward="false" selection-start-line="1" selection-start-column="0" selection-end-line="1" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/IndexPage.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
......@@ -663,98 +664,110 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/antd/lib/input/Input.d.ts">
<entry file="file://$PROJECT_DIR$/src/routes/Login.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="124">
<caret line="60" column="6" lean-forward="true" selection-start-line="60" selection-start-column="6" selection-end-line="60" selection-end-column="6" />
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/antd/lib/form/Form.d.ts">
<entry file="file://$PROJECT_DIR$/src/routes/Login.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="73" column="21" lean-forward="false" selection-start-line="73" selection-start-column="21" selection-end-line="73" selection-end-column="21" />
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/router.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="12" column="41" lean-forward="false" selection-start-line="12" selection-start-column="41" selection-end-line="12" selection-end-column="41" />
<state relative-caret-position="36">
<caret line="2" column="36" lean-forward="true" selection-start-line="2" selection-start-column="36" selection-end-line="2" selection-end-column="36" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/services/example.js">
<entry file="file://$PROJECT_DIR$/node_modules/dva/router.d.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<state relative-caret-position="-169">
<caret line="50" column="2" lean-forward="false" selection-start-line="50" selection-start-column="2" selection-end-line="50" selection-end-column="2" />
<folding>
<element signature="e#0#44#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/Apps/All.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-97">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/dva/dist/dva.js">
<entry file="file://$PROJECT_DIR$/src/components/App/Create.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="7595" column="11" lean-forward="false" selection-start-line="7595" selection-start-column="11" selection-end-line="7595" selection-end-column="11" />
<state relative-caret-position="397">
<caret line="88" column="13" lean-forward="true" selection-start-line="88" selection-start-column="13" selection-end-line="88" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/yarn.lock">
<entry file="file://$PROJECT_DIR$/src/utils/request.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="1065" column="16" lean-forward="false" selection-start-line="1065" selection-start-column="16" selection-end-line="1065" selection-end-column="16" />
<state relative-caret-position="-161">
<caret line="14" column="46" lean-forward="false" selection-start-line="14" selection-start-column="46" selection-end-line="14" selection-end-column="46" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/App.js">
<entry file="file://$PROJECT_DIR$/src/routes/LoginCallback.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-539">
<caret line="14" column="14" lean-forward="true" selection-start-line="14" selection-start-column="14" selection-end-line="14" selection-end-column="14" />
<state relative-caret-position="162">
<caret line="11" column="15" lean-forward="true" selection-start-line="11" selection-start-column="15" selection-end-line="11" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/services/Apps.js">
<entry file="file://$PROJECT_DIR$/src/models/App.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="38" lean-forward="true" selection-start-line="0" selection-start-column="38" selection-end-line="0" selection-end-column="38" />
<folding />
<state relative-caret-position="342">
<caret line="19" column="34" lean-forward="true" selection-start-line="19" selection-start-column="34" selection-end-line="19" selection-end-column="34" />
<folding>
<element signature="e#0#39#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/Apps.js">
<entry file="file://$PROJECT_DIR$/src/routes/Apps.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-190">
<caret line="21" column="0" lean-forward="true" selection-start-line="21" selection-start-column="0" selection-end-line="21" selection-end-column="0" />
<state relative-caret-position="433">
<caret line="102" column="40" lean-forward="false" selection-start-line="102" selection-start-column="40" selection-end-line="102" selection-end-column="40" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/example.js">
<entry file="file://$PROJECT_DIR$/src/config.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="378">
<caret line="21" column="6" lean-forward="true" selection-start-line="21" selection-start-column="6" selection-end-line="21" selection-end-column="6" />
<state relative-caret-position="72">
<caret line="4" column="45" lean-forward="false" selection-start-line="4" selection-start-column="45" selection-end-line="4" selection-end-column="45" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/Common.js">
<entry file="file://$PROJECT_DIR$/src/routes/Apps/Create.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="5" column="18" lean-forward="true" selection-start-line="5" selection-start-column="18" selection-end-line="5" selection-end-column="18" />
<state relative-caret-position="-200">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/packages.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="282">
<caret line="56" column="11" lean-forward="true" selection-start-line="56" selection-start-column="11" selection-end-line="56" selection-end-column="11" />
<state relative-caret-position="-492">
<caret line="1" column="28" lean-forward="false" selection-start-line="1" selection-start-column="28" selection-end-line="1" selection-end-column="28" />
<folding>
<element signature="e#0#70#0" expanded="false" />
</folding>
......@@ -763,26 +776,62 @@
</entry>
<entry file="file://$PROJECT_DIR$/src/models/user.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<state relative-caret-position="108">
<caret line="6" column="13" lean-forward="true" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/AppDetail.js">
<entry file="file://$PROJECT_DIR$/src/components/Common/Nav.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="414">
<caret line="27" column="19" lean-forward="false" selection-start-line="27" selection-start-column="19" selection-end-line="27" selection-end-column="19" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/services/Apps.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="355">
<caret line="704" column="26" lean-forward="true" selection-start-line="704" selection-start-column="26" selection-end-line="704" selection-end-column="26" />
<state relative-caret-position="234">
<caret line="13" column="1" lean-forward="true" selection-start-line="13" selection-start-column="1" selection-end-line="13" selection-end-column="1" />
<folding>
<element signature="e#0#26#0" expanded="false" />
<element signature="e#0#24#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/services/Packages.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="271">
<caret line="26" column="32" lean-forward="false" selection-start-line="26" selection-start-column="32" selection-end-line="26" selection-end-column="32" />
<state relative-caret-position="162">
<caret line="9" column="0" lean-forward="false" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/Apps.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="397">
<caret line="67" column="5" lean-forward="true" selection-start-line="67" selection-start-column="5" selection-end-line="67" selection-end-column="5" />
<folding>
<element signature="e#0#46#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/Common.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="390">
<caret line="40" column="0" lean-forward="false" selection-start-line="40" selection-start-column="0" selection-end-line="40" selection-end-column="0" />
<folding>
<element signature="e#0#38#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/AppDetail.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="307">
<caret line="143" column="41" lean-forward="true" selection-start-line="143" selection-start-column="41" selection-end-line="143" selection-end-column="41" />
<folding />
</state>
</provider>
......
......@@ -2,6 +2,6 @@ export default {
apiRoot: 'http://localhost:8001',
imgRoot: 'http://node:7888',
returnSSO: 'http://localhost:8000/loginCallback',
SSOProvider: 'https://ygobbs.com/session/sso_provider'
SSOProvider: 'https://accounts.moecube.com/'
// SSOProvider: 'http://localhost:8081'
}
\ No newline at end of file
}
......@@ -43,14 +43,17 @@ export default {
}
},
effects: {
*submit({payload}, {call, put}){
*create({payload}, {call, put, select}){
yield put({type: 'SubmitRequest', payload})
const {user} = yield select(state => state.user)
const params = {
id: payload.id,
name: {
[payload.locale]: payload.name
}
},
author: user.id,
}
try {
......@@ -58,6 +61,7 @@ export default {
if (data) {
yield put({type: 'SubmitSuccess'})
yield put({type: 'reset'})
yield put({type: 'Apps/fetch'})
message.info("i18n 创建成功")
}
} catch (error) {
......
import {fetch, update} from '../services/Apps'
import * as crypto from 'crypto'
import {message} from 'antd'
import config from '../config'
export default {
......@@ -18,10 +16,12 @@ export default {
},
},
effects: {
*fetch({payload}, {call, put}) {
*fetch({payload}, {call, put, select}) {
const {user: {id: author, admin}} = yield select(state => state.user)
try {
const {data} = yield call(fetch, payload)
const {data} = yield call(fetch, {...payload, author, admin})
let apps = {}
if (data && data.length > 0) {
......@@ -65,22 +65,6 @@ export default {
subscriptions: {
setup({dispatch, history}) {
dispatch({type: 'fetch'})
return history.listen(({pathname, query}) => {
if (pathname === '/login') {
let params = new URLSearchParams()
params.set('return_sso_url', config.returnSSO)
let payload = Buffer.from(params.toString()).toString('base64')
let url = new URL(config.SSOProvider)
params = url['searchParams'];
params.set('sso', payload);
params.set('sig', crypto.createHmac('sha256', 'zsZv6LXHDwwtUAGa').update(payload).digest('hex'))
window.location.href = url
}
})
}
},
};
import {routerRedux} from 'dva/router'
import config from '../config'
import * as crypto from 'crypto'
export default {
namespace: 'Common',
......@@ -8,9 +11,39 @@ export default {
reducers: {
collapsed (state) {
const mode = state.collapsed ? 'inline' : 'vertical'
return { ...state, collapsed: !state.collapsed, mode }
return {...state, collapsed: !state.collapsed, mode}
}
},
effects: {
*init({payload}, {put, call, select}) {
const {user} = yield select(state => state.user)
if (!user) {
yield put(routerRedux.replace('/login'))
}
// yield put({ type: 'Apps/fetch' })
}
},
subscriptions: {
setup({dispatch, history}) {
if (location.pathname != '/loginCallback') {
dispatch({type: 'init'})
}
return history.listen(({pathname, query}) => {
if (pathname === '/login') {
let params = new URLSearchParams()
params.set('return_sso_url', config.returnSSO)
let payload = Buffer.from(params.toString()).toString('base64')
let url = new URL(config.SSOProvider)
params = url['searchParams'];
params.set('sso', payload);
params.set('sig', crypto.createHmac('sha256', 'zsZv6LXHDwwtUAGa').update(payload).digest('hex'))
window.location.href = url
} else if (pathname === '/apps') {
dispatch({ type: 'Apps/fetch', query })
}
})
}
},
effects: {},
subscriptions: {},
};
export default {
namespace: 'example',
state: {},
subscriptions: {
setup({ dispatch, history }) { // eslint-disable-line
},
},
effects: {
*fetch({ payload }, { call, put }) { // eslint-disable-line
yield put({ type: 'save' });
},
},
reducers: {
save(state, action) {
return { ...state, ...action.payload };
},
},
};
import {routerRedux} from 'dva/router'
export default {
namespace: 'user',
state: {
},
reducers: {
change(state, action){
ssoLogin(state, action){
return {
...state, ...action.payload
}
}
},
effects: {},
effects: {
*ssoLogin({payload}, {put, call}) {
yield put(routerRedux.push('/apps'))
}
},
subscriptions: {},
};
import React from 'react';
import { Router, Route } from 'dva/router';
import IndexPage from './routes/IndexPage';
import Apps from "./routes/Apps.js";
import AppDetail from './routes/AppDetail.js'
import Entry from "./routes/Entry.js";
......
......@@ -123,25 +123,26 @@ class AppDetail extends React.Component {
});
}
handleChangeIco = ({fileList}) => {
handleChangeIco = ({file, fileList}) => {
this.setState({iconList: fileList})
this.handleUpdateImg({fileList, field: 'icon'})
this.handleUpdateImg({file, fileList, field: 'icon'})
}
handleChangeCover = ({fileList}) => {
handleChangeCover = ({file, fileList}) => {
this.setState({coverList: fileList})
this.handleUpdateImg({fileList, field: 'cover'})
this.handleUpdateImg({file, fileList, field: 'cover'})
}
handleChangeBackground = ({fileList}) => {
handleChangeBackground = ({file, fileList}) => {
this.setState({backgroundList: fileList})
this.handleUpdateImg({fileList, field: 'background'})
this.handleUpdateImg({file, fileList, field: 'background'})
}
handleUpdateImg = ({field, fileList}) => {
handleUpdateImg = ({file, field, fileList}) => {
const {form, dispatch, params: {id}} = this.props
const [img] = fileList
if (img.status === 'done') {
if (file.status === 'done') {
const [res] = img.response
dispatch({type: "Apps/update", payload: {id, [field]: res.Key}})
} else if (file.status === 'error') {
message.error(file.response.message);
}
}
......@@ -187,7 +188,9 @@ class AppDetail extends React.Component {
const {version, actions, references, dependencies} = values
Object.keys(actions).forEach((platform) => {
actions[platform] = JSON.parse(actions[platform])
if(actions[platform]) {
actions[platform] = JSON.parse(actions[platform])
}
})
dispatch({type: "Apps/update", payload: {id, version, actions, references, dependencies}})
......@@ -376,7 +379,7 @@ class AppDetail extends React.Component {
return (
<Spin spinning={loading.global}>
<Tabs defaultActiveKey="1" className="app-detail-nav" type="card">
<Tabs defaultActiveKey="1" className="app-detail-nav">
<TabPane tab={<span><Icon type="setting"/> 基本信息 </span>} key="1">
<div className={styles.form}>
<Form onSubmit={this.onSubmitBase}>
......@@ -392,7 +395,7 @@ class AppDetail extends React.Component {
<div className="clearfix">
<Upload
multiple={false}
action={`${config.apiRoot}/upload/image`}
action={`${config.apiRoot}/v1/upload/image`}
listType="picture-card"
className="upload-icon"
fileList={iconList}
......@@ -418,7 +421,7 @@ class AppDetail extends React.Component {
<div className="clearfix">
<Upload
multiple={false}
action={`${config.apiRoot}/upload/image`}
action={`${config.apiRoot}/v1/upload/image`}
listType="picture-card"
className="upload-icon"
fileList={coverList}
......@@ -444,7 +447,7 @@ class AppDetail extends React.Component {
<div className="clearfix">
<Upload
multiple={false}
action={`${config.apiRoot}/upload/image`}
action={`${config.apiRoot}/v1/upload/image`}
listType="picture-card"
className="upload-icon"
fileList={backgroundList}
......@@ -899,7 +902,7 @@ class AppDetail extends React.Component {
}
}}
disabled={ pack.status !== 'init' && pack.status !== 'failed'}
action={`${config.apiRoot}/upload/package/${pack["_id"]}`}
action={`${config.apiRoot}/v1/upload/package/${pack["_id"]}`}
>
<p className="ant-upload-drag-icon">
<Icon type="inbox"/>
......
......@@ -45,7 +45,7 @@ const columns = [
sorter: true,
width: '10%',
key:'updated_at'
},
},
]
function Apps({children, dispatch, isCreate, isSubmit, apps}) {
......@@ -55,7 +55,7 @@ function Apps({children, dispatch, isCreate, isSubmit, apps}) {
isLoading: isSubmit,
onCancel: () => dispatch({ type: 'App/onCancel'}),
onCreate: () => dispatch({ type: 'App/onCreate'}),
onSubmit: (payload) => dispatch({ type: 'App/submit', payload}),
onSubmit: (payload) => dispatch({ type: 'App/create', payload}),
}
const CreateButtonProps = {
......@@ -74,8 +74,8 @@ function Apps({children, dispatch, isCreate, isSubmit, apps}) {
return (
<div className={styles.normal}>
<Table {...TableProps}/>
<Table {...TableProps}/>
<Affix style={{ position: 'absolute', bottom: 50, right: 50}}>
<Button {...CreateButtonProps} >
......@@ -91,7 +91,7 @@ function Apps({children, dispatch, isCreate, isSubmit, apps}) {
function mapStateToProps(state) {
const {
Apps: { apps },
App: { isCreate, isSubmit }
App: { isCreate, isSubmit },
} = state
return {
apps,
......
.normal {
font-family: Georgia, sans-serif;
margin-top: 3em;
text-align: center;
}
.title {
font-size: 2.5rem;
font-weight: normal;
letter-spacing: -1px;
}
.welcome {
height: 328px;
background: url(../assets/yay.jpg) no-repeat center 0;
background-size: 388px 328px;
}
.list {
font-size: 1.2em;
margin-top: 1.8em;
list-style: none;
line-height: 1.5em;
}
.list code {
background: #f7f7f7;
}
import React from 'react';
import { connect } from 'dva';
import styles from './IndexPage.css';
function IndexPage() {
return (
<div className={styles.normal}>
<h1 className={styles.title}>Yay! Welcome to dva!</h1>
<div className={styles.welcome} />
<ul className={styles.list}>
<li>To get started, edit <code>src/index.js</code> and save to reload.</li>
<li><a href="https://github.com/dvajs/dva-docs/blob/master/v1/en-us/getting-started.md">Getting Started</a></li>
</ul>
</div>
);
}
IndexPage.propTypes = {
};
export default connect()(IndexPage);
import React from 'react';
import { connect } from 'dva';
import styles from './Login.css';
function Login() {
return (
<div className={styles.normal}>
Route Component: Login
</div>
);
}
function mapStateToProps() {
return {};
}
export default connect(mapStateToProps)(Login);
import React from 'react';
import { connect } from 'dva';
import {connect} from 'dva';
import styles from './LoginCallback.css';
class LoginCallback extends React.Component{
class LoginCallback extends React.Component {
componentDidMount() {
const { location: { query: { sso }}, dispatch } = this.props
console.log(this.props)
const data = toObject(new URLSearchParams(Buffer.from(sso, 'base64').toString()))
if (data) {
dispatch({type: "user/change", payload:{ data }})
localStorage.setItem("user", JSON.stringify(data))
componentDidMount() {
const {location: {query: {sso}}, dispatch} = this.props
const user = toObject(new URLSearchParams(Buffer.from(sso, 'base64').toString()))
if (user) {
dispatch({type: "user/ssoLogin", payload: { user } })
}
}
render(){
render() {
const {dispatch, location} = this.props
return (
......@@ -26,29 +24,26 @@ class LoginCallback extends React.Component{
)
}
}
function LoginCallback({ }) {
function LoginCallback({}) {
return (
<div className={styles.normal}>
{JSON.stringify(data)}
{JSON.stringify(data)}
</div>
);
}
function mapStateToProps({ }) {
return {
};
function mapStateToProps({}) {
return {};
}
function toObject(entries){
function toObject(entries) {
let result = {};
for (let [key, value] of entries) {
result[key] = value;
}
return result;
for (let [key, value] of entries) {
result[key] = value;
}
return result;
}
export default connect(mapStateToProps)(LoginCallback);
import * as qs from 'qs'
import request from '../utils/request'
export async function fetch() {
return request(`/apps`)
export async function fetch(params) {
return request(`/v1/apps?${qs.stringify(params)}`)
}
export async function create(params) {
return request(`/apps/${params.id}`, {
return request(`/v1/app/${params.id}`, {
method: 'POST',
body: JSON.stringify(params)
})
}
export async function update(params) {
return request(`/apps/${params.id}`, {
return request(`/v1/app/${params.id}`, {
method: 'PATCH',
body: JSON.stringify(params)
})
}
\ No newline at end of file
}
......@@ -2,34 +2,34 @@ import request from '../utils/request'
export async function add(params) {
return request(`/packages`, {
return request(`/v1/package`, {
method: 'POST',
body: JSON.stringify(params)
})
}
export async function patch(params) {
return request(`/packages`, {
return request(`/v1/package`, {
method: 'PATCH',
body: JSON.stringify(params)
})
}
export async function fetch(params) {
return request(`/packages/manage?appId=${params.appId}`, {
return request(`/v1/packages?appId=${params.appId}`, {
method: 'GET',
})
}
export async function urlUpload(params) {
return request('/upload/packageUrl', {
return request('/v1/upload/packageUrl', {
method: 'POST',
body: JSON.stringify(params)
})
}
export async function del(params) {
return request(`/packages`, {
return request(`/v1/package`, {
method: 'DELETE',
body: JSON.stringify(params)
})
......
import request from '../utils/request';
export async function query() {
return request('/api/users');
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment