python学习

This commit is contained in:
2019-08-06 15:21:15 +08:00
parent 54761c6262
commit 020f56d2d5
37 changed files with 910 additions and 605 deletions

559
.idea/workspace.xml generated
View File

@@ -2,82 +2,43 @@
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="d564f57a-9f96-4262-9481-cacdf2b8445c" name="Default" comment="python学习"> <list default="true" id="d564f57a-9f96-4262-9481-cacdf2b8445c" name="Default" comment="python学习">
<change afterPath="$PROJECT_DIR$/common/libs/member/CartService.py" afterDir="false" /> <change afterPath="$PROJECT_DIR$/web/static/js/chart.js" afterDir="false" />
<change afterPath="$PROJECT_DIR$/common/libs/pay/PayService.py" afterDir="false" /> <change afterPath="$PROJECT_DIR$/web/static/js/index/index.js" afterDir="false" />
<change afterPath="$PROJECT_DIR$/common/libs/pay/WeChatService.py" afterDir="false" /> <change afterPath="$PROJECT_DIR$/web/static/js/stat/index.js" afterDir="false" />
<change afterPath="$PROJECT_DIR$/common/libs/queue/QueueService.py" afterDir="false" /> <change afterPath="$PROJECT_DIR$/web/static/js/stat/member.js" afterDir="false" />
<change afterPath="$PROJECT_DIR$/common/models/food/WxShareHistory.py" afterDir="false" /> <change afterPath="$PROJECT_DIR$/web/static/js/stat/product.js" afterDir="false" />
<change afterPath="$PROJECT_DIR$/common/models/member/MemberAddress.py" afterDir="false" /> <change afterPath="$PROJECT_DIR$/web/static/js/stat/share.js" afterDir="false" />
<change afterPath="$PROJECT_DIR$/common/models/member/MemberCart.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/common/models/member/MemberComments.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/common/models/member/OauthMemberBind.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/common/models/pay/OauthAccessToken.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/common/models/pay/PayOrder.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/common/models/pay/PayOrderCallbackData.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/common/models/pay/PayOrderItem.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/common/models/queue/QueueList.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/common/models/stat/StatDailyFood.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/common/models/stat/StatDailyMember.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/common/models/stat/StatDailySite.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/jobs/bash_jobs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/jobs/launcher.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/jobs/readme.md" afterDir="false" />
<change afterPath="$PROJECT_DIR$/jobs/tasks/pay/index.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/jobs/tasks/queue/index.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/jobs/tasks/stat/daily.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/web/controllers/api/Address.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/web/controllers/api/Cart.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/web/controllers/api/Food.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/web/controllers/api/My.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/web/controllers/api/Order.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/web/controllers/chart.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/web/interceptors/ApiAuthInterceptor.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/web/static/js/finance/index.js" afterDir="false" />
<change afterPath="$PROJECT_DIR$/web/static/js/finance/pay_info.js" afterDir="false" />
<change afterPath="$PROJECT_DIR$/web/templates/common/tab_finance.html" afterDir="false" />
<change afterPath="$PROJECT_DIR$/web/templates/common/tab_member.html" afterDir="false" />
<change afterPath="$PROJECT_DIR$/web/templates/common/tab_stat.html" 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$/common/libs/Helper.py" beforeDir="false" afterPath="$PROJECT_DIR$/common/libs/Helper.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/controllers/index.py" beforeDir="false" afterPath="$PROJECT_DIR$/web/controllers/index.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/base_setting.py" beforeDir="false" afterPath="$PROJECT_DIR$/config/base_setting.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/controllers/stat/Stat.py" beforeDir="false" afterPath="$PROJECT_DIR$/web/controllers/stat/Stat.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/manager.py" beforeDir="false" afterPath="$PROJECT_DIR$/manager.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/static/font-awesome/fonts/fontawesome-webfont.eot" beforeDir="false" afterPath="$PROJECT_DIR$/web/static/font-awesome/fonts/fontawesome-webfont.eot" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina" beforeDir="false" afterPath="$PROJECT_DIR$/mina" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/static/font-awesome/fonts/fontawesome-webfont.ttf" beforeDir="false" afterPath="$PROJECT_DIR$/web/static/font-awesome/fonts/fontawesome-webfont.ttf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/app.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/app.js" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/static/font-awesome/fonts/fontawesome-webfont.woff" beforeDir="false" afterPath="$PROJECT_DIR$/web/static/font-awesome/fonts/fontawesome-webfont.woff" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/cart/index.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/cart/index.js" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/static/font-awesome/fonts/fontawesome-webfont.woff2" beforeDir="false" afterPath="$PROJECT_DIR$/web/static/font-awesome/fonts/fontawesome-webfont.woff2" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/cart/index.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/cart/index.wxml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/static/js/common.js" beforeDir="false" afterPath="$PROJECT_DIR$/web/static/js/common.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/food/index.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/food/index.js" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/static/js/user/login.js" beforeDir="false" afterPath="$PROJECT_DIR$/web/static/js/user/login.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/food/index.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/food/index.wxml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/static/plugins/ueditor/dialogs/wordimage/fClipboard_ueditor.swf" beforeDir="false" afterPath="$PROJECT_DIR$/web/static/plugins/ueditor/dialogs/wordimage/fClipboard_ueditor.swf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/food/info.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/food/info.js" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/static/plugins/ueditor/dialogs/wordimage/imageUploader.swf" beforeDir="false" afterPath="$PROJECT_DIR$/web/static/plugins/ueditor/dialogs/wordimage/imageUploader.swf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/food/info.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/food/info.wxml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/static/plugins/ueditor/third-party/video-js/font/vjs.eot" beforeDir="false" afterPath="$PROJECT_DIR$/web/static/plugins/ueditor/third-party/video-js/font/vjs.eot" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/index/index.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/index/index.js" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/static/plugins/ueditor/third-party/video-js/font/vjs.ttf" beforeDir="false" afterPath="$PROJECT_DIR$/web/static/plugins/ueditor/third-party/video-js/font/vjs.ttf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/index/index.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/index/index.wxml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/static/plugins/ueditor/third-party/video-js/font/vjs.woff" beforeDir="false" afterPath="$PROJECT_DIR$/web/static/plugins/ueditor/third-party/video-js/font/vjs.woff" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/my/addressList.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/my/addressList.js" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/static/plugins/ueditor/third-party/video-js/video-js.swf" beforeDir="false" afterPath="$PROJECT_DIR$/web/static/plugins/ueditor/third-party/video-js/video-js.swf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/my/addressList.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/my/addressList.wxml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/static/plugins/ueditor/third-party/webuploader/Uploader.swf" beforeDir="false" afterPath="$PROJECT_DIR$/web/static/plugins/ueditor/third-party/webuploader/Uploader.swf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/my/addressSet.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/my/addressSet.js" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/static/plugins/ueditor/third-party/zeroclipboard/ZeroClipboard.swf" beforeDir="false" afterPath="$PROJECT_DIR$/web/static/plugins/ueditor/third-party/zeroclipboard/ZeroClipboard.swf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/my/addressSet.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/my/addressSet.wxml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/templates/account/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/account/index.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/my/comment.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/my/comment.js" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/templates/account/set.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/account/set.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/my/comment.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/my/comment.wxml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/templates/food/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/food/index.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/my/commentList.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/my/commentList.js" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/templates/index/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/index/index.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/my/index.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/my/index.js" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/templates/member/comment.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/member/comment.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/my/order_info.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/my/order_info.js" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/templates/member/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/member/index.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/my/order_info.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/my/order_info.wxml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/templates/member/info.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/member/info.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/my/order_list.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/my/order_list.js" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/templates/member/set.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/member/set.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/my/order_list.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/my/order_list.wxml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/templates/stat/food.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/stat/food.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/order/index.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/order/index.js" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/templates/stat/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/stat/index.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/order/index.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/order/index.wxml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/templates/stat/member.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/stat/member.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/utils/util.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/utils/util.js" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/templates/stat/share.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/stat/share.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/web/controllers/api/Member.py" beforeDir="false" afterPath="$PROJECT_DIR$/web/controllers/api/Member.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/templates/user/edit.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/user/edit.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/web/controllers/api/__init__.py" beforeDir="false" afterPath="$PROJECT_DIR$/web/controllers/api/__init__.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/templates/user/login.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/user/login.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/web/controllers/finance/Finance.py" beforeDir="false" afterPath="$PROJECT_DIR$/web/controllers/finance/Finance.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/web/controllers/food/Food.py" beforeDir="false" afterPath="$PROJECT_DIR$/web/controllers/food/Food.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/web/templates/common/layout_main.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/common/layout_main.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/web/templates/finance/account.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/finance/account.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/web/templates/finance/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/finance/index.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/web/templates/finance/pay_info.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/finance/pay_info.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/web/templates/food/cat.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/food/cat.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/web/templates/food/cat_set.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/food/cat_set.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/web/templates/food/info.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/food/info.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/www.py" beforeDir="false" afterPath="$PROJECT_DIR$/www.py" afterDir="false" />
</list> </list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
@@ -88,19 +49,31 @@
<component name="FileEditorManager"> <component name="FileEditorManager">
<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$/www.py"> <entry file="file://$PROJECT_DIR$/web/templates/index/index.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1116"> <state relative-caret-position="-1674" />
<caret line="36" selection-start-line="36" selection-end-line="36" /> </provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/web/templates/stat/index.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="217">
<caret line="7" column="31" lean-forward="true" selection-start-line="7" selection-start-column="31" selection-end-line="7" selection-end-column="31" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/web/controllers/api/__init__.py"> <entry file="file://$PROJECT_DIR$/web/controllers/stat/__init__.py">
<provider selected="true" editor-type-id="text-editor" />
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/web/controllers/stat/Stat.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="279"> <state relative-caret-position="248">
<caret line="9" selection-start-line="9" selection-end-line="9" /> <caret line="20" lean-forward="true" selection-start-line="20" selection-end-line="20" />
</state> </state>
</provider> </provider>
</entry> </entry>
@@ -108,62 +81,19 @@
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/web/controllers/chart.py"> <entry file="file://$PROJECT_DIR$/web/controllers/chart.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="248"> <state relative-caret-position="287">
<caret line="8" selection-start-line="8" selection-end-line="8" /> <caret line="41" column="21" selection-start-line="41" selection-start-column="21" selection-end-line="41" selection-end-column="21" />
<folding>
<element signature="e#24#55#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/common/models/stat/StatDailyFood.py"> <entry file="file://$PROJECT_DIR$/web/templates/user/login.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="279"> <state relative-caret-position="-186" />
<caret line="11" selection-start-line="11" selection-end-line="11" />
</state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/web/interceptors/ApiAuthInterceptor.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="248">
<caret line="13" column="49" selection-start-line="13" selection-start-column="34" selection-end-line="13" selection-end-column="49" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/config/base_setting.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="189">
<caret line="10" column="1" selection-start-line="10" selection-start-column="1" selection-end-line="10" selection-end-column="1" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/web/controllers/food/Food.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="370">
<caret line="284" selection-start-line="284" selection-end-line="284" />
<folding>
<element signature="e#24#76#0" expanded="true" />
<element signature="e#1982#2584#0" />
<element signature="e#5497#5974#0" />
<element signature="e#6053#7221#0" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/common/libs/member/CartService.py">
<provider selected="true" editor-type-id="text-editor" />
</entry>
</file>
</leaf> </leaf>
</component> </component>
<component name="FileTemplateManagerImpl"> <component name="FileTemplateManagerImpl">
@@ -175,7 +105,6 @@
</component> </component>
<component name="FindInProjectRecents"> <component name="FindInProjectRecents">
<findStrings> <findStrings>
<find>login_name</find>
<find>render_template</find> <find>render_template</find>
<find>set</find> <find>set</find>
<find>user.uid</find> <find>user.uid</find>
@@ -205,6 +134,7 @@
<find>data</find> <find>data</find>
<find>onSha</find> <find>onSha</find>
<find>buyNo</find> <find>buyNo</find>
<find>getFor</find>
</findStrings> </findStrings>
<replaceStrings> <replaceStrings>
<replace>ops_render</replace> <replace>ops_render</replace>
@@ -216,7 +146,6 @@
<component name="IdeDocumentHistory"> <component name="IdeDocumentHistory">
<option name="CHANGED_PATHS"> <option name="CHANGED_PATHS">
<list> <list>
<option value="$PROJECT_DIR$/web/controllers/stat/Stat.py" />
<option value="$PROJECT_DIR$/web/static/js/user/edit.js" /> <option value="$PROJECT_DIR$/web/static/js/user/edit.js" />
<option value="$PROJECT_DIR$/web/templates/user/edit.html" /> <option value="$PROJECT_DIR$/web/templates/user/edit.html" />
<option value="$PROJECT_DIR$/web/templates/account/index.html" /> <option value="$PROJECT_DIR$/web/templates/account/index.html" />
@@ -246,7 +175,6 @@
<option value="$PROJECT_DIR$/web/templates/food/set.html" /> <option value="$PROJECT_DIR$/web/templates/food/set.html" />
<option value="$PROJECT_DIR$/application.py" /> <option value="$PROJECT_DIR$/application.py" />
<option value="$PROJECT_DIR$/common/libs/Helper.py" /> <option value="$PROJECT_DIR$/common/libs/Helper.py" />
<option value="$PROJECT_DIR$/web/templates/food/index.html" />
<option value="$PROJECT_DIR$/web/templates/common/layout_main.html" /> <option value="$PROJECT_DIR$/web/templates/common/layout_main.html" />
<option value="$PROJECT_DIR$/mina/pages/food/index.wxml" /> <option value="$PROJECT_DIR$/mina/pages/food/index.wxml" />
<option value="$PROJECT_DIR$/web/controllers/api/Food.py" /> <option value="$PROJECT_DIR$/web/controllers/api/Food.py" />
@@ -267,6 +195,8 @@
<option value="$PROJECT_DIR$/web/controllers/api/__init__.py" /> <option value="$PROJECT_DIR$/web/controllers/api/__init__.py" />
<option value="$PROJECT_DIR$/config/base_setting.py" /> <option value="$PROJECT_DIR$/config/base_setting.py" />
<option value="$PROJECT_DIR$/web/controllers/food/Food.py" /> <option value="$PROJECT_DIR$/web/controllers/food/Food.py" />
<option value="$PROJECT_DIR$/web/templates/food/index.html" />
<option value="$PROJECT_DIR$/web/templates/stat/index.html" />
</list> </list>
</option> </option>
</component> </component>
@@ -280,8 +210,8 @@
<packageJsonPaths /> <packageJsonPaths />
</component> </component>
<component name="ProjectFrameBounds"> <component name="ProjectFrameBounds">
<option name="x" value="44" /> <option name="x" value="108" />
<option name="y" value="65" /> <option name="y" value="59" />
<option name="width" value="909" /> <option name="width" value="909" />
<option name="height" value="939" /> <option name="height" value="939" />
</component> </component>
@@ -302,49 +232,32 @@
<path> <path>
<item name="order" type="b2602c69:ProjectViewProjectNode" /> <item name="order" type="b2602c69:ProjectViewProjectNode" />
<item name="order" type="462c0819:PsiDirectoryNode" /> <item name="order" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" /> <item name="jobs" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="order" type="b2602c69:ProjectViewProjectNode" /> <item name="order" type="b2602c69:ProjectViewProjectNode" />
<item name="order" type="462c0819:PsiDirectoryNode" /> <item name="order" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" /> <item name="jobs" type="462c0819:PsiDirectoryNode" />
<item name="libs" type="462c0819:PsiDirectoryNode" /> <item name="tasks" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="order" type="b2602c69:ProjectViewProjectNode" /> <item name="order" type="b2602c69:ProjectViewProjectNode" />
<item name="order" type="462c0819:PsiDirectoryNode" /> <item name="order" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" /> <item name="jobs" type="462c0819:PsiDirectoryNode" />
<item name="libs" type="462c0819:PsiDirectoryNode" /> <item name="tasks" type="462c0819:PsiDirectoryNode" />
<item name="member" type="462c0819:PsiDirectoryNode" /> <item name="stat" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="order" type="b2602c69:ProjectViewProjectNode" />
<item name="order" type="462c0819:PsiDirectoryNode" />
<item name="config" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="order" type="b2602c69:ProjectViewProjectNode" />
<item name="order" type="462c0819:PsiDirectoryNode" />
<item name="mina" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="order" type="b2602c69:ProjectViewProjectNode" />
<item name="order" type="462c0819:PsiDirectoryNode" />
<item name="mina" type="462c0819:PsiDirectoryNode" />
<item name="pages" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="order" type="b2602c69:ProjectViewProjectNode" />
<item name="order" type="462c0819:PsiDirectoryNode" />
<item name="mina" type="462c0819:PsiDirectoryNode" />
<item name="pages" type="462c0819:PsiDirectoryNode" />
<item name="order" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="order" type="b2602c69:ProjectViewProjectNode" /> <item name="order" type="b2602c69:ProjectViewProjectNode" />
<item name="order" type="462c0819:PsiDirectoryNode" /> <item name="order" type="462c0819:PsiDirectoryNode" />
<item name="web" type="462c0819:PsiDirectoryNode" /> <item name="web" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path>
<item name="order" type="b2602c69:ProjectViewProjectNode" />
<item name="order" type="462c0819:PsiDirectoryNode" />
<item name="web" type="462c0819:PsiDirectoryNode" />
<item name="controllers" type="462c0819:PsiDirectoryNode" />
</path>
<path> <path>
<item name="order" type="b2602c69:ProjectViewProjectNode" /> <item name="order" type="b2602c69:ProjectViewProjectNode" />
<item name="order" type="462c0819:PsiDirectoryNode" /> <item name="order" type="462c0819:PsiDirectoryNode" />
@@ -356,7 +269,7 @@
<item name="order" type="462c0819:PsiDirectoryNode" /> <item name="order" type="462c0819:PsiDirectoryNode" />
<item name="web" type="462c0819:PsiDirectoryNode" /> <item name="web" type="462c0819:PsiDirectoryNode" />
<item name="templates" type="462c0819:PsiDirectoryNode" /> <item name="templates" type="462c0819:PsiDirectoryNode" />
<item name="food" type="462c0819:PsiDirectoryNode" /> <item name="stat" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="order" type="b2602c69:ProjectViewProjectNode" /> <item name="order" type="b2602c69:ProjectViewProjectNode" />
@@ -376,7 +289,7 @@
<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$/web" /> <property name="last_opened_file_path" value="$PROJECT_DIR$/web/controllers/stat" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" /> <property name="nodejs_npm_path_reset_for_default_project" value="true" />
<property name="options.lastSelected" value="com.jetbrains.python.configuration.PythonSdkConfigurable" /> <property name="options.lastSelected" value="com.jetbrains.python.configuration.PythonSdkConfigurable" />
@@ -387,11 +300,11 @@
</component> </component>
<component name="RecentsManager"> <component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS"> <key name="CopyFile.RECENT_KEYS">
<recent name="D:\order\web\controllers\stat" />
<recent name="D:\order\web\static\plugins" />
<recent name="D:\order\web" /> <recent name="D:\order\web" />
<recent name="D:\order\web\templates\common" /> <recent name="D:\order\web\static\js" />
<recent name="D:\order\web\templates\food" /> <recent name="D:\order\web\templates\user" />
<recent name="D:\order\common\models" />
<recent name="D:\order\web\controllers\api" />
</key> </key>
<key name="MoveFile.RECENT_KEYS"> <key name="MoveFile.RECENT_KEYS">
<recent name="D:\order\common\libs" /> <recent name="D:\order\common\libs" />
@@ -535,7 +448,14 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1564741445223</updated> <updated>1564741445223</updated>
</task> </task>
<option name="localTasksCounter" value="17" /> <task id="LOCAL-00017" summary="python学习">
<created>1565072263784</created>
<option name="number" value="00017" />
<option name="presentableId" value="LOCAL-00017" />
<option name="project" value="LOCAL" />
<updated>1565072263784</updated>
</task>
<option name="localTasksCounter" value="18" />
<servers /> <servers />
</component> </component>
<component name="TodoView"> <component name="TodoView">
@@ -548,9 +468,9 @@
</todo-panel> </todo-panel>
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="44" y="65" width="909" height="939" extended-state="0" /> <frame x="108" y="59" width="909" height="939" extended-state="0" />
<layout> <layout>
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.3685419" /> <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.3685419" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Favorites" order="2" side_tool="true" /> <window_info id="Favorites" order="2" side_tool="true" />
<window_info id="Project Explorer" order="3" /> <window_info id="Project Explorer" order="3" />
@@ -565,7 +485,7 @@
<window_info anchor="bottom" id="TODO" order="6" weight="0.32960895" /> <window_info anchor="bottom" id="TODO" order="6" weight="0.32960895" />
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" /> <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Database Changes" order="8" show_stripe_button="false" /> <window_info anchor="bottom" id="Database Changes" order="8" show_stripe_button="false" />
<window_info active="true" anchor="bottom" id="Terminal" order="9" visible="true" weight="0.3573201" /> <window_info anchor="bottom" id="Terminal" order="9" visible="true" weight="0.29528537" />
<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 anchor="bottom" id="Version Control" order="11" /> <window_info anchor="bottom" id="Version Control" order="11" />
<window_info anchor="bottom" id="Python Console" order="12" /> <window_info anchor="bottom" id="Python Console" order="12" />
@@ -589,120 +509,6 @@
<option name="LAST_COMMIT_MESSAGE" value="python学习" /> <option name="LAST_COMMIT_MESSAGE" value="python学习" />
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/mina/app.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="465">
<caret line="15" column="25" selection-start-line="15" selection-start-column="25" selection-end-line="15" selection-end-column="25" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/models/member/MemberCart.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="155">
<caret line="7" column="33" lean-forward="true" selection-start-line="7" selection-start-column="33" selection-end-line="7" selection-end-column="33" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/mina/pages/food/info.wxml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="203">
<caret line="10" column="17" lean-forward="true" selection-start-line="10" selection-start-column="17" selection-end-line="10" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/mina/pages/cart/index.json">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/mina/pages/cart/index.wxml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-262">
<caret line="7" column="11" lean-forward="true" selection-start-line="7" selection-start-column="11" selection-end-line="7" selection-end-column="11" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/models/pay/PayOrder.py">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/common/models/member/MemberAddress.py">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/mina/pages/order/index.wxml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="558">
<caret line="60" selection-start-line="60" selection-end-line="60" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/mina/pages/order/index.json">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/mina/pages/cart/index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2325">
<caret line="215" selection-start-line="215" selection-end-line="215" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/libs/member/MemberComments.py">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/common/models/member/MemberComments.py">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/mina/pages/my/index.js">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/common/libs/food/FoodService.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="279">
<caret line="12" selection-start-line="12" selection-end-line="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/models/pay/PayOrderCallbackData.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="8" selection-start-line="8" selection-end-line="8" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/libs/pay/WeChatService.py">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/common/models/queue/QueueList.py">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/jobs/launcher.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="237">
<caret line="21" lean-forward="true" selection-start-line="21" selection-end-line="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/jobs/tasks/queue/index.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="217">
<caret line="17" column="16" lean-forward="true" selection-start-line="17" selection-start-column="16" selection-end-line="17" selection-end-column="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/jobs/tasks/pay/index.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="7">
<caret line="12" column="12" lean-forward="true" selection-start-line="12" selection-start-column="12" selection-end-line="12" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/mina/app.json">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/mina/pages/food/info.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-3424">
<caret line="80" column="22" lean-forward="true" selection-start-line="80" selection-start-column="22" selection-end-line="80" selection-end-column="22" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/mina/pages/order/index.js"> <entry file="file://$PROJECT_DIR$/mina/pages/order/index.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="558"> <state relative-caret-position="558">
@@ -740,11 +546,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/common/libs/Helper.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-279" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/controllers/finance/__init__.py"> <entry file="file://$PROJECT_DIR$/web/controllers/finance/__init__.py">
<provider selected="true" editor-type-id="text-editor" /> <provider selected="true" editor-type-id="text-editor" />
</entry> </entry>
@@ -765,13 +566,6 @@
<entry file="file://$PROJECT_DIR$/web/static/js/finance/index.js"> <entry file="file://$PROJECT_DIR$/web/static/js/finance/index.js">
<provider selected="true" editor-type-id="text-editor" /> <provider selected="true" editor-type-id="text-editor" />
</entry> </entry>
<entry file="file://$PROJECT_DIR$/web/static/js/finance/pay_info.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="248">
<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$/数据库文件/food.sql"> <entry file="file://$PROJECT_DIR$/数据库文件/food.sql">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="330"> <state relative-caret-position="330">
@@ -847,16 +641,6 @@
<entry file="file://$PROJECT_DIR$/common/libs/member/CartService.py"> <entry file="file://$PROJECT_DIR$/common/libs/member/CartService.py">
<provider selected="true" editor-type-id="text-editor" /> <provider selected="true" editor-type-id="text-editor" />
</entry> </entry>
<entry file="file://$PROJECT_DIR$/web/controllers/chart.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="248">
<caret line="8" selection-start-line="8" selection-end-line="8" />
<folding>
<element signature="e#24#55#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/models/stat/StatDailyFood.py"> <entry file="file://$PROJECT_DIR$/common/models/stat/StatDailyFood.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="279"> <state relative-caret-position="279">
@@ -878,18 +662,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/web/templates/food/index.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1674" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/templates/common/layout_main.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="6" column="23" lean-forward="true" selection-start-line="6" selection-start-column="23" selection-end-line="6" selection-end-column="23" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/templates/food/cat.html"> <entry file="file://$PROJECT_DIR$/web/templates/food/cat.html">
<provider selected="true" editor-type-id="text-editor" /> <provider selected="true" editor-type-id="text-editor" />
</entry> </entry>
@@ -906,5 +678,152 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/web/templates/common/layout_main.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="6" column="23" lean-forward="true" selection-start-line="6" selection-start-column="23" selection-end-line="6" selection-end-column="23" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/templates/common/tab_food.html">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/web/templates/food/index.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="310">
<caret line="10" column="5" selection-start-line="10" selection-start-column="5" selection-end-line="10" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/static/js/finance/pay_info.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="248">
<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$/common/libs/Helper.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="316">
<caret line="75" lean-forward="true" selection-start-line="75" selection-end-line="75" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/jobs/tasks/stat/daily.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="31">
<caret line="44" column="14" lean-forward="true" selection-start-line="44" selection-start-column="14" selection-end-line="44" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/controllers/user/User.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="341">
<caret line="32" column="5" lean-forward="true" selection-start-line="32" selection-start-column="5" selection-end-line="32" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/controllers/index.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="341">
<caret line="40" column="14" selection-start-line="40" selection-start-column="14" selection-end-line="40" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/templates/stat/food.html">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/web/templates/member/comment.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="9" column="8" selection-start-line="9" selection-start-column="8" selection-end-line="9" selection-end-column="8" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/templates/account/index.html">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/web/templates/account/set.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-186" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/templates/user/edit.html">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/web/templates/user/login.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-186" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/static/js/account/set.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="217">
<caret line="7" column="4" lean-forward="true" selection-start-line="7" selection-start-column="4" selection-end-line="7" selection-end-column="4" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/static/js/index/index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="372">
<caret line="12" column="11" selection-start-line="12" selection-start-column="10" selection-end-line="12" selection-end-column="11" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/templates/index/index.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1674" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/static/js/food/cat.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="372">
<caret line="12" column="15" selection-start-line="12" selection-start-column="15" selection-end-line="12" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/controllers/chart.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="287">
<caret line="41" column="21" selection-start-line="41" selection-start-column="21" selection-end-line="41" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/static/plugins/datetimepicker/jquery.datetimepicker.min.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="31">
<caret line="1" lean-forward="true" selection-start-line="1" selection-end-line="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/static/js/stat/share.js">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/web/static/js/stat/index.js">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/web/static/js/stat/member.js">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/web/static/js/stat/product.js">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/web/templates/stat/index.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="217">
<caret line="7" column="31" lean-forward="true" selection-start-line="7" selection-start-column="31" selection-end-line="7" selection-end-column="31" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/controllers/stat/__init__.py">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/web/controllers/stat/Stat.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="248">
<caret line="20" lean-forward="true" selection-start-line="20" selection-end-line="20" />
</state>
</provider>
</entry>
</component> </component>
</project> </project>

View File

@@ -1,8 +1,57 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from application import app,db
from flask import Blueprint from flask import Blueprint
from common.libs.Helper import ops_render from common.libs.Helper import ops_render
from common.libs.Helper import getFormatDate
from common.models.stat.StatDailySite import StatDailySite
import datetime
route_index = Blueprint( 'index_page',__name__ ) route_index = Blueprint( 'index_page',__name__ )
@route_index.route("/") @route_index.route("/")
def index(): def index():
return ops_render( "index/index.html" ) resp_data = {
'data':{
'finance':{
'today':0,
'month':0
},
'member': {
'today_new': 0,
'month_new': 0,
'total': 0
},
'order': {
'today': 0,
'month': 0
},
'shared': {
'today': 0,
'month': 0
},
}
}
now = datetime.datetime.now()
date_before_30days = now + datetime.timedelta( days = -30 )
date_from = getFormatDate( date = date_before_30days,format = "%Y-%m-%d" )
date_to = getFormatDate( date = now ,format = "%Y-%m-%d")
list = StatDailySite.query.filter( StatDailySite.date >= date_from)\
.filter( StatDailySite.date <= date_to ).order_by( StatDailySite.id.asc() )\
.all()
data = resp_data['data']
if list:
for item in list:
data['finance']['month'] += item.total_pay_money
data['member']['month_new'] += item.total_new_member_count
data['member']['total'] = item.total_member_count
data['order']['month'] += item.total_order_count
data['shared']['month'] += item.total_shared_count
if getFormatDate( date = item.date ,format = "%Y-%m-%d") == date_to:
data['finance']['today'] = item.total_pay_money
data['member']['today_new'] = item.total_new_member_count
data['order']['today'] = item.total_order_count
data['shared']['today'] = item.total_shared_count
return ops_render( "index/index.html",resp_data )

View File

@@ -1,20 +1,183 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from flask import Blueprint from flask import Blueprint,request
from common.libs.Helper import ops_render from common.libs.Helper import ops_render
from application import app
from common.libs.Helper import getFormatDate,iPagination,getDictFilterField,selectFilterObj
from common.models.stat.StatDailySite import StatDailySite
from common.models.stat.StatDailyFood import StatDailyFood
from common.models.stat.StatDailyMember import StatDailyMember
from common.models.member.Member import Member
from common.models.food.Food import Food
import datetime
route_stat = Blueprint( 'stat_page',__name__ ) route_stat = Blueprint( 'stat_page',__name__ )
@route_stat.route( "/index" ) @route_stat.route( "/index" )
def index(): def index():
return ops_render( "stat/index.html" ) now = datetime.datetime.now()
date_before_30days = now + datetime.timedelta(days=-30)
default_date_from = getFormatDate(date=date_before_30days, format="%Y-%m-%d")
default_date_to = getFormatDate(date=now, format="%Y-%m-%d")
resp_data = {}
req = request.values
page = int(req['p']) if ('p' in req and req['p']) else 1
date_from = req['date_from'] if 'date_from' in req else default_date_from
date_to = req['date_to'] if 'date_to' in req else default_date_to
query = StatDailySite.query.filter(StatDailySite.date >= date_from) \
.filter(StatDailySite.date <= date_to)
page_params = {
'total': query.count(),
'page_size': app.config['PAGE_SIZE'],
'page': page,
'display': app.config['PAGE_DISPLAY'],
'url': request.full_path.replace("&p={}".format(page), "")
}
pages = iPagination(page_params)
offset = (page - 1) * app.config['PAGE_SIZE']
list = query.order_by(StatDailySite.id.desc()).offset( offset ).limit( app.config['PAGE_SIZE'] ).all()
resp_data['list'] = list
resp_data['pages'] = pages
resp_data['current'] = 'index'
resp_data['search_con'] = {
'date_from':date_from,
'date_to':date_to
}
return ops_render( "stat/index.html",resp_data )
@route_stat.route( "/food" ) @route_stat.route( "/food" )
def food(): def food():
return ops_render( "stat/food.html" ) now = datetime.datetime.now()
date_before_30days = now + datetime.timedelta(days=-30)
default_date_from = getFormatDate(date=date_before_30days, format="%Y-%m-%d")
default_date_to = getFormatDate(date=now, format="%Y-%m-%d")
resp_data = {}
req = request.values
page = int(req['p']) if ('p' in req and req['p']) else 1
date_from = req['date_from'] if 'date_from' in req else default_date_from
date_to = req['date_to'] if 'date_to' in req else default_date_to
query = StatDailyFood.query.filter(StatDailyFood.date >= date_from) \
.filter(StatDailyFood.date <= date_to)
page_params = {
'total': query.count(),
'page_size': app.config['PAGE_SIZE'],
'page': page,
'display': app.config['PAGE_DISPLAY'],
'url': request.full_path.replace("&p={}".format(page), "")
}
pages = iPagination(page_params)
offset = (page - 1) * app.config['PAGE_SIZE']
list = query.order_by(StatDailyFood.id.desc()).offset(offset).limit(app.config['PAGE_SIZE']).all()
date_list = []
if list:
food_map = getDictFilterField(Food, Food.id, "id", selectFilterObj(list, "food_id"))
for item in list:
tmp_food_info = food_map[item.food_id] if item.food_id in food_map else {}
tmp_data = {
"date": item.date,
"total_count": item.total_count,
"total_pay_money": item.total_pay_money,
'food_info': tmp_food_info
}
date_list.append(tmp_data)
resp_data['list'] = date_list
resp_data['pages'] = pages
resp_data['current'] = 'food'
resp_data['search_con'] = {
'date_from': date_from,
'date_to': date_to
}
return ops_render( "stat/food.html",resp_data )
@route_stat.route( "/member" ) @route_stat.route( "/member" )
def memebr(): def memebr():
return ops_render( "stat/member.html" ) now = datetime.datetime.now()
date_before_30days = now + datetime.timedelta(days=-30)
default_date_from = getFormatDate(date=date_before_30days, format="%Y-%m-%d")
default_date_to = getFormatDate(date=now, format="%Y-%m-%d")
resp_data = {}
req = request.values
page = int(req['p']) if ('p' in req and req['p']) else 1
date_from = req['date_from'] if 'date_from' in req else default_date_from
date_to = req['date_to'] if 'date_to' in req else default_date_to
query = StatDailyMember.query.filter(StatDailyMember.date >= date_from) \
.filter(StatDailyMember.date <= date_to)
page_params = {
'total': query.count(),
'page_size': app.config['PAGE_SIZE'],
'page': page,
'display': app.config['PAGE_DISPLAY'],
'url': request.full_path.replace("&p={}".format(page), "")
}
pages = iPagination(page_params)
offset = (page - 1) * app.config['PAGE_SIZE']
list = query.order_by(StatDailyMember.id.desc()).offset(offset).limit(app.config['PAGE_SIZE']).all()
date_list = []
if list:
member_map = getDictFilterField( Member,Member.id,"id",selectFilterObj( list ,"member_id") )
for item in list:
tmp_member_info = member_map[ item.member_id ] if item.member_id in member_map else {}
tmp_data = {
"date":item.date,
"total_pay_money":item.total_pay_money,
"total_shared_count":item.total_shared_count,
'member_info':tmp_member_info
}
date_list.append( tmp_data )
resp_data['list'] = date_list
resp_data['pages'] = pages
resp_data['current'] = 'member'
resp_data['search_con'] = {
'date_from': date_from,
'date_to': date_to
}
return ops_render( "stat/member.html",resp_data )
@route_stat.route( "/share" ) @route_stat.route( "/share" )
def share(): def share():
return ops_render( "stat/share.html" ) now = datetime.datetime.now()
date_before_30days = now + datetime.timedelta(days=-30)
default_date_from = getFormatDate(date=date_before_30days, format="%Y-%m-%d")
default_date_to = getFormatDate(date=now, format="%Y-%m-%d")
resp_data = {}
req = request.values
page = int(req['p']) if ('p' in req and req['p']) else 1
date_from = req['date_from'] if 'date_from' in req else default_date_from
date_to = req['date_to'] if 'date_to' in req else default_date_to
query = StatDailySite.query.filter(StatDailySite.date >= date_from) \
.filter(StatDailySite.date <= date_to)
page_params = {
'total': query.count(),
'page_size': app.config['PAGE_SIZE'],
'page': page,
'display': app.config['PAGE_DISPLAY'],
'url': request.full_path.replace("&p={}".format(page), "")
}
pages = iPagination(page_params)
offset = (page - 1) * app.config['PAGE_SIZE']
list = query.order_by(StatDailySite.id.desc()).offset(offset).limit(app.config['PAGE_SIZE']).all()
resp_data['list'] = list
resp_data['pages'] = pages
resp_data['current'] = 'food'
resp_data['search_con'] = {
'date_from': date_from,
'date_to': date_to
}
return ops_render( "stat/share.html",resp_data )

99
web/static/js/chart.js Normal file
View File

@@ -0,0 +1,99 @@
;
//画图通用组件,虽然估计很难统一,但是总要走出第一步了
var charts_ops = {
setOption:function(){
Highcharts.setOptions({
chart: {
},
exporting: {
enabled: false
},
legend: {
//enabled:false
},
credits:{
enabled:false
},
colors:['#058DC7', '#50B432', '#ED561B', '#DDDF00',
'#24CBE5', '#64E572', '#FF9655', '#FFF263', '#6AF9C4','#E93EFF'],
title: '',
xAxis: {
tickWidth:0,
lineWidth: 0,
gridLineColor: '#eee',
//gridLineWidth: 1,
crosshair: {
width: 1,
color: '#ebebeb'
}
},
yAxis: {
gridLineColor: '#eee',
gridLineWidth: 1,
title: ''
},
plotOptions: {
column: {
pointPadding: 0.2,
pointWidth: 20,
borderWidth: 0
},
series: {
marker: {
enabled: false
},
},
line: {
lineWidth: 2,
states: {
hover: {
lineWidth: 2
}
}
}
},
tooltip: {
backgroundColor: '#404750',
borderWidth: 0,
shadow: false,
headerFormat: '',
footerFormat: '',
shared: true,
useHTML: true,
style: {
color: '#fff',
padding: '5px'
}
},
lang: {
noData: "暂无数据"
},
noData: {
style: {
fontWeight: 'bold',
fontSize: '15px',
color: '#303030'
}
}
});
},
drawLine:function( target ,data ){//画直线
var chart = target.highcharts({
chart: {
type: 'spline'
},
xAxis: {
categories: data.categories
},
series: data.series,
legend: {
enabled:true,
align: 'right',
verticalAlign: 'top',
x: 0,
y: -15
}
});
return chart;
}
};

View File

@@ -139,7 +139,7 @@ var common_ops = {
scrollTop: target.offset().top - 10 scrollTop: target.offset().top - 10
}, 100); }, 100);
}, },
buildUrl:function( path ,params ){ buildUrl:function( path ,params ){
var url = "" + path; var url = "" + path;
var _paramUrl = ""; var _paramUrl = "";
if( params ){ if( params ){
@@ -150,11 +150,11 @@ var common_ops = {
} }
return url + _paramUrl; return url + _paramUrl;
}, },
buildPicUrl:function( img_key ){ buildPicUrl:function( img_key ){
var domain = $(".hidden_layout_wrap input[name=domain]").val(); var domain = $(".hidden_layout_wrap input[name=domain]").val();
var prefix_url = $(".hidden_layout_wrap input[name=prefix_url]").val(); var prefix_url = $(".hidden_layout_wrap input[name=prefix_url]").val();
return domain + prefix_url + img_key; return domain + prefix_url + img_key;
} }
}; };
$(document).ready( function() { $(document).ready( function() {

View File

@@ -0,0 +1,28 @@
;
var dashboard_index_ops = {
init:function(){
this.drawChart();
},
drawChart:function(){
charts_ops.setOption();
$.ajax({
url:common_ops.buildUrl("/chart/dashboard"),
dataType:'json',
success:function( res ){
charts_ops.drawLine( $('#member_order'),res.data )
}
});
$.ajax({
url:common_ops.buildUrl("/chart/finance"),
dataType:'json',
success:function( res ){
charts_ops.drawLine( $('#finance'),res.data )
}
});
}
};
$(document).ready( function(){
dashboard_index_ops.init();
});

View File

View File

@@ -0,0 +1,34 @@
;
var stat_member_ops = {
init:function(){
this.eventBind();
this.datetimepickerComponent();
},
eventBind:function(){
$("#search_form_wrap .search").click( function(){
$("#search_form_wrap").submit();
});
},
datetimepickerComponent:function() {
var that = this;
$.datetimepicker.setLocale('zh');
params = {
scrollInput: false,
scrollMonth: false,
scrollTime: false,
dayOfWeekStart: 1,
lang: 'zh',
todayButton: true,//回到今天
defaultSelect: true,
defaultDate: new Date().Format('yyyy-MM-dd'),
format: 'Y-m-d',//格式化显示
timepicker: false
};
$('#search_form_wrap input[name=date_from]').datetimepicker(params);
$('#search_form_wrap input[name=date_to]').datetimepicker(params);
}
};
$(document).ready( function(){
stat_member_ops.init();
});

View File

@@ -0,0 +1,34 @@
;
var stat_product_ops = {
init:function(){
this.eventBind();
this.datetimepickerComponent();
},
eventBind:function(){
$("#search_form_wrap .search").click( function(){
$("#search_form_wrap").submit();
});
},
datetimepickerComponent:function() {
var that = this;
$.datetimepicker.setLocale('zh');
params = {
scrollInput: false,
scrollMonth: false,
scrollTime: false,
dayOfWeekStart: 1,
lang: 'zh',
todayButton: true,//回到今天
defaultSelect: true,
defaultDate: new Date().Format('yyyy-MM-dd'),
format: 'Y-m-d',//格式化显示
timepicker: false
};
$('#search_form_wrap input[name=date_from]').datetimepicker(params);
$('#search_form_wrap input[name=date_to]').datetimepicker(params);
}
};
$(document).ready( function(){
stat_product_ops.init();
});

View File

@@ -0,0 +1,46 @@
;
var stat_share_ops = {
init:function(){
this.eventBind();
this.drawChart();
this.datetimepickerComponent();
},
eventBind:function(){
$("#search_form_wrap .search").click( function(){
$("#search_form_wrap").submit();
});
},
datetimepickerComponent:function(){
var that = this;
$.datetimepicker.setLocale('zh');
params = {
scrollInput: false,
scrollMonth: false,
scrollTime: false,
dayOfWeekStart: 1,
lang: 'zh',
todayButton: true,//回到今天
defaultSelect: true,
defaultDate: new Date().Format('yyyy-MM-dd'),
format: 'Y-m-d',//格式化显示
timepicker: false
};
$('#search_form_wrap input[name=date_from]').datetimepicker(params);
$('#search_form_wrap input[name=date_to]').datetimepicker(params);
},
drawChart:function(){
charts_ops.setOption();
$.ajax({
url:common_ops.buildUrl("/chart/share"),
dataType:'json',
success:function( res ){
charts_ops.drawLine( $('#container'),res.data )
}
});
}
};
$(document).ready( function(){
stat_share_ops.init();
});

View File

@@ -10,6 +10,7 @@ var user_login_ops = {
common_ops.alert("正在处理!!请不要重复提交~~"); common_ops.alert("正在处理!!请不要重复提交~~");
return; return;
} }
var login_name = $(".login_wrap input[name=login_name]").val(); var login_name = $(".login_wrap input[name=login_name]").val();
var login_pwd = $(".login_wrap input[name=login_pwd]").val(); var login_pwd = $(".login_wrap input[name=login_pwd]").val();

View File

@@ -9,16 +9,15 @@
<select name="status" class="form-control inline"> <select name="status" class="form-control inline">
<option value="-1">请选择状态</option> <option value="-1">请选择状态</option>
{% for tmp_key in status_mapping %} {% for tmp_key in status_mapping %}
<option value="{{tmp_key}}" {% if tmp_key==search_con['status'] %} selected {% endif %}>{{ status_mapping[ tmp_key] }}</option> <option value="{{ tmp_key }}" {% if tmp_key == search_con['status'] %} selected {% endif %}>{{ status_mapping[ tmp_key ] }}</option>
{% endfor %} {% endfor %}
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="input-group"> <div class="input-group">
<input type="text" name="mix_kw" placeholder="请输入姓名或者手机号码" class="form-control" value="{{ search_con['mix_kw']}}"> <input type="text" name="mix_kw" placeholder="请输入姓名或者手机号码" class="form-control" value="{{ search_con['mix_kw'] }}">
<input type="hidden" name="p" value="{{ search_con['p']}}"> <input type="hidden" name="p" value="{{ search_con['p'] }}">
<span class="input-group-btn"> <span class="input-group-btn">
<button type="button" class="btn btn-primary search"> <button type="button" class="btn btn-primary search">
<i class="fa fa-search"></i>搜索 <i class="fa fa-search"></i>搜索
@@ -37,7 +36,7 @@
</div> </div>
</div> </div>
</form> </form>
<table class="table table-bordered m-t"> <table class="table table-bordered m-t">
<thead> <thead>
<tr> <tr>
<th>序号</th> <th>序号</th>
@@ -81,9 +80,7 @@
{% endif %} {% endif %}
</tbody> </tbody>
</table> </table>
<!--分页代码已被封装到统一模板文件中--> <!--分页代码已被封装到统一模板文件中-->
<!--分页代码已被封装到统一模板文件中-->
{% include 'common/pagenation.html' %} {% include 'common/pagenation.html' %}
</div> </div>
</div> </div>

View File

@@ -8,28 +8,28 @@
<div class="form-group"> <div class="form-group">
<label class="col-lg-2 control-label">姓名:</label> <label class="col-lg-2 control-label">姓名:</label>
<div class="col-lg-10"> <div class="col-lg-10">
<input type="text" name="nickname" class="form-control" placeholder="请输入姓名~~" value="{{ info.nickname}}"> <input type="text" name="nickname" class="form-control" placeholder="请输入姓名~~" value="{{ info.nickname }}">
</div> </div>
</div> </div>
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
<div class="form-group"> <div class="form-group">
<label class="col-lg-2 control-label">手机:</label> <label class="col-lg-2 control-label">手机:</label>
<div class="col-lg-10"> <div class="col-lg-10">
<input type="text" name="mobile" class="form-control" placeholder="请输入手机~~" value="{{ info.mobile}}"> <input type="text" name="mobile" class="form-control" placeholder="请输入手机~~" value="{{ info.mobile }}">
</div> </div>
</div> </div>
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
<div class="form-group"> <div class="form-group">
<label class="col-lg-2 control-label">邮箱:</label> <label class="col-lg-2 control-label">邮箱:</label>
<div class="col-lg-10"> <div class="col-lg-10">
<input type="text" name="email" class="form-control" placeholder="请输入邮箱~~" value="{{ info.email}}"> <input type="text" name="email" class="form-control" placeholder="请输入邮箱~~" value="{{ info.email }}">
</div> </div>
</div> </div>
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
<div class="form-group"> <div class="form-group">
<label class="col-lg-2 control-label">登录名:</label> <label class="col-lg-2 control-label">登录名:</label>
<div class="col-lg-10"> <div class="col-lg-10">
<input type="text" name="login_name" class="form-control" autocomplete="off" placeholder="请输入登录名~~" value="{{ info.login_name}}"> <input type="text" name="login_name" class="form-control" autocomplete="off" placeholder="请输入登录名~~" value="{{ info.login_name }}">
</div> </div>
</div> </div>
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
@@ -42,7 +42,7 @@
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
<div class="form-group"> <div class="form-group">
<div class="col-lg-4 col-lg-offset-2"> <div class="col-lg-4 col-lg-offset-2">
<input type="hidden" name="id" value="{{ info.uid}}"> <input type="hidden" name="id" value="{{ info.uid }}">
<button class="btn btn-w-m btn-outline btn-primary save">保存</button> <button class="btn btn-w-m btn-outline btn-primary save">保存</button>
</div> </div>
</div> </div>

View File

@@ -59,7 +59,7 @@
{% for item in list %} {% for item in list %}
<tr> <tr>
<td>{{ item.name }}</td> <td>{{ item.name }}</td>
<td>{{ cat_mapping[ item.cat_id].name }}</td> <td>{{ item.name }}</td>
<td>{{ item.price }}</td> <td>{{ item.price }}</td>
<td>{{ item.stock }}</td> <td>{{ item.stock }}</td>
<td>{{ item.tags }}</td> <td>{{ item.tags }}</td>

View File

@@ -9,8 +9,8 @@
<h5>营收概况</h5> <h5>营收概况</h5>
</div> </div>
<div class="ibox-content"> <div class="ibox-content">
<h1 class="no-margins">1005.00</h1> <h1 class="no-margins">{{ data.finance.today }}</h1>
<small>近30日31177.00</small> <small>近30日{{ data.finance.month }}</small>
</div> </div>
</div> </div>
</div> </div>
@@ -21,8 +21,8 @@
<h5>订单</h5> <h5>订单</h5>
</div> </div>
<div class="ibox-content"> <div class="ibox-content">
<h1 class="no-margins">988</h1> <h1 class="no-margins">{{ data.order.today }}</h1>
<small>近30日29383</small> <small>近30日{{ data.order.today }}</small>
</div> </div>
</div> </div>
</div> </div>
@@ -33,9 +33,9 @@
<h5>会员</h5> <h5>会员</h5>
</div> </div>
<div class="ibox-content"> <div class="ibox-content">
<h1 class="no-margins">358</h1> <h1 class="no-margins">{{ data.member.total }}</h1>
<small>今日新增:77</small> <small>今日新增:{{ data.member.today_new }}</small>
<small>近30日新增2454</small> <small>近30日新增{{ data.member.month_new }}</small>
</div> </div>
</div> </div>
</div> </div>
@@ -46,8 +46,8 @@
<h5>分享</h5> <h5>分享</h5>
</div> </div>
<div class="ibox-content"> <div class="ibox-content">
<h1 class="no-margins">1250</h1> <h1 class="no-margins">{{ data.shared.today }}</h1>
<small>近30日45980</small> <small>近30日{{ data.shared.month }}</small>
</div> </div>
</div> </div>
</div> </div>
@@ -61,4 +61,9 @@
</div> </div>
</div> </div>
</div> </div>
{% endblock %}
{% block js %}
<script src="{{ buildStaticUrl('/plugins/highcharts/highcharts.js') }}"></script>
<script src="{{ buildStaticUrl('/js/chart.js') }}"></script>
<script src="{{ buildStaticUrl('/js/index/index.js') }}"></script>
{% endblock %} {% endblock %}

View File

@@ -1,19 +1,6 @@
{% extends "common/layout_main.html" %} {% extends "common/layout_main.html" %}
{% block content %} {% block content %}
<div class="row border-bottom"> {% include "common/tab_member.html" %}
<div class="col-lg-12">
<div class="tab_title">
<ul class="nav nav-pills">
<li>
<a href="{{ buildUrl('/member/index') }}">会员列表</a>
</li>
<li class="current">
<a href="{{ buildUrl('/member/comment') }}">会员评论</a>
</li>
</ul>
</div>
</div>
</div>
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<table class="table table-bordered m-t"> <table class="table table-bordered m-t">
@@ -27,27 +14,29 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% if list %}
{% for item in list %}
<tr> <tr>
<td> <td>
<img alt="image" class="img-circle" src="{{ buildStaticUrl('/images/common/avatar.png') }}" style="width: 40px;height: 40px;"> <img alt="image" class="img-circle" src="{{ item.member_info.avatar }}" style="width: 40px;height: 40px;">
</td> </td>
<td>{{ item.member_info.nickname }}</td>
<td> <td>
编程浪子 {% for item_food in item.foods %}
{{ item_food.name }}、
{% endfor %}
</td> </td>
<td>小鸡炖蘑菇</td> <td>{{ item.content }}</td>
<td>非常愉快的订餐服务</td> <td>{{ item.score }}</td>
<td>8</td>
</tr> </tr>
{% endfor %}
{% else %}
<tr><td colspan="5">暂无数据</td></tr>
{% endif %}
</tbody> </tbody>
</table> </table>
<div class="row"> <!--分页代码已被封装到统一模板文件中-->
<div class="col-lg-12"> {% include 'common/pagenation.html' %}
<span class="pagination_count" style="line-height: 40px;">共1条记录 | 每页50条</span>
<ul class="pagination pagination-lg pull-right" style="margin: 0 0 ;">
<li class="active"><a href="javascript:void(0);">1</a></li>
</ul>
</div>
</div>
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -1,19 +1,6 @@
{% extends "common/layout_main.html" %} {% extends "common/layout_main.html" %}
{% block content %} {% block content %}
<div class="row border-bottom"> {% include "common/tab_member.html" %}
<div class="col-lg-12">
<div class="tab_title">
<ul class="nav nav-pills">
<li class="current">
<a href="{{ buildUrl('/member/index') }}">会员列表</a>
</li>
<li>
<a href="{{ buildUrl('/member/comment') }}">会员评论</a>
</li>
</ul>
</div>
</div>
</div>
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<form class="form-inline wrap_search"> <form class="form-inline wrap_search">
@@ -22,13 +9,13 @@
<select name="status" class="form-control inline"> <select name="status" class="form-control inline">
<option value="-1">请选择状态</option> <option value="-1">请选择状态</option>
{% for tmp_key in status_mapping %} {% for tmp_key in status_mapping %}
<option value="{{ tmp_key }}"{% if tmp_key == search_con['status'] %} selected {% endif %}>{{ status_mapping[ tmp_key ] }}</option> <option value="{{ tmp_key }}" {% if tmp_key == search_con['status'] %} selected {% endif %}>{{ status_mapping[ tmp_key ] }}</option>
{% endfor %} {% endfor %}
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="input-group"> <div class="input-group">
<input type="text" name="mix_kw" placeholder="请输入关键字" class="form-control" value="{{search_con['mix_kw']}}"> <input type="text" name="mix_kw" placeholder="请输入关键字" class="form-control" value="{{ search_con['mix_kw'] }}">
<input type="hidden" name="p" value="{{ search_con['p'] }}"> <input type="hidden" name="p" value="{{ search_con['p'] }}">
<span class="input-group-btn"> <span class="input-group-btn">
<button type="button" class="btn btn-primary search"> <button type="button" class="btn btn-primary search">
@@ -51,7 +38,7 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% if list %} {% if list %}
{% for item in list %} {% for item in list %}
<tr> <tr>
<td><img alt="image" class="img-circle" src="{{ item.avatar }}" style="width: 40px;height: 40px;"></td> <td><img alt="image" class="img-circle" src="{{ item.avatar }}" style="width: 40px;height: 40px;"></td>
@@ -85,10 +72,11 @@
</tbody> </tbody>
</table> </table>
<!--分页代码已被封装到统一模板文件中--> <!--分页代码已被封装到统一模板文件中-->
{% include 'common/pagenation.html'%} {% include 'common/pagenation.html' %}
</div> </div>
</div> </div>
{% endblock %} {% endblock %}
{% block js %} {% block js %}
<script src="{{ buildStaticUrl('/js/member/index.js') }}"></script> <script src="{{ buildStaticUrl('/js/member/index.js') }}"></script>
{% endblock %} {% endblock %}

View File

@@ -1,25 +1,12 @@
{% extends "common/layout_main.html" %} {% extends "common/layout_main.html" %}
{% block content %} {% block content %}
<div class="row border-bottom"> {% include "common/tab_member.html" %}
<div class="col-lg-12">
<div class="tab_title">
<ul class="nav nav-pills">
<li class="current">
<a href="{{ buildUrl('/member/index') }}">会员列表</a>
</li>
<li>
<a href="{{ buildUrl('/member/comment') }}">会员评论</a>
</li>
</ul>
</div>
</div>
</div>
<div class="row m-t"> <div class="row m-t">
<div class="col-lg-12"> <div class="col-lg-12">
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<div class="m-b-md"> <div class="m-b-md">
% if info.status ==1 % {% if info.status == 1 %}
<a class="btn btn-outline btn-primary pull-right" href="{{ buildUrl('/member/set') }}?id={{ info.id }}"> <a class="btn btn-outline btn-primary pull-right" href="{{ buildUrl('/member/set') }}?id={{ info.id }}">
<i class="fa fa-pencil"></i>编辑 <i class="fa fa-pencil"></i>编辑
</a> </a>
@@ -67,9 +54,18 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% if pay_order_list %}
{% for item in pay_order_list %}
<tr> <tr>
<td colspan="4">暂无订单</td> <td>{{ item.order_number }}</td>
<td>{{ item.pay_time }}</td>
<td>{{ item.total_price }}</td>
<td>{{ item.status_desc }}</td>
</tr> </tr>
{% endfor %}
{% else %}
<td colspan="4">暂无订单</td>
{% endif %}
</tbody> </tbody>
</table> </table>
</div> </div>
@@ -85,10 +81,17 @@
<tbody> <tbody>
<tr> <tr>
</tr> </tr>
{% if comment_list %}
{% for item in comment_list %}
<tr> <tr>
<td colspan="3">暂无评论</td> <td>{{ item.created_time }}</td>
<td>{{ item.score }}</td>
<td>{{ item.content }}</td>
</tr> </tr>
{% endfor %}
{% else %}
<td colspan="3">暂无评论</td>
{% endif %}
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@@ -1,19 +1,6 @@
{% extends "common/layout_main.html" %} {% extends "common/layout_main.html" %}
{% block content %} {% block content %}
<div class="row border-bottom"> {% include "common/tab_member.html" %}
<div class="col-lg-12">
<div class="tab_title">
<ul class="nav nav-pills">
<li class="current">
<a href="{{ buildUrl('/member/index') }}">会员列表</a>
</li>
<li>
<a href="{{ buildUrl('/member/comment') }}">会员评论</a>
</li>
</ul>
</div>
</div>
</div>
<div class="row mg-t20 wrap_member_set"> <div class="row mg-t20 wrap_member_set">
<div class="col-lg-12"> <div class="col-lg-12">
<h2 class="text-center">会员设置</h2> <h2 class="text-center">会员设置</h2>

View File

@@ -1,33 +1,13 @@
{% extends "common/layout_main.html" %} {% extends "common/layout_main.html" %}
{% block content %} {% block content %}
<div class="row border-bottom"> {% include "common/tab_stat.html" %}
<div class="col-lg-12">
<div class="tab_title">
<ul class="nav nav-pills">
<li>
<a href="{{ buildUrl('/stat/index') }}">财务统计</a>
</li>
<li class="current">
<a href="{{ buildUrl('/stat/food') }}">售卖统计</a>
</li>
<li>
<a href="{{ buildUrl('/stat/member') }}">会员消费统计</a>
</li>
<li>
<a href="{{ buildUrl('/stat/share') }}">分享统计</a>
</li>
</ul>
</div>
</div>
</div>
<div class="row m-t"> <div class="row m-t">
<div class="col-lg-12 m-t"> <div class="col-lg-12 m-t">
<form class="form-inline" id="search_form_wrap"> <form class="form-inline" id="search_form_wrap">
<div class="row p-w-m"> <div class="row p-w-m">
<div class="form-group"> <div class="form-group">
<div class="input-group"> <div class="input-group">
<input type="text" placeholder="请选择开始时间" name="date_from" class="form-control" <input type="text" placeholder="请选择开始时间" name="date_from" class="form-control" value="{{ search_con['date_from'] }}">
value="2018-05-08">
</div> </div>
</div> </div>
<div class="form-group m-r m-l"> <div class="form-group m-r m-l">
@@ -35,7 +15,7 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="input-group"> <div class="input-group">
<input type="text" placeholder="请选择结束时间" name="date_to" class="form-control" value="2018-06-07"> <input type="text" placeholder="请选择结束时间" name="date_to" class="form-control" value="{{ search_con['date_to'] }}">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
@@ -54,19 +34,29 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% if list %}
{% for item in list %}
<tr> <tr>
<td colspan="5">暂无数据</td> <td>{{ item.date }}</td>
<td>{{ item.food_info.name }}</td>
<td>{{ item.total_count }}</td>
<td>{{ item.total_pay_money }}</td>
</tr> </tr>
{% endfor %}
{% else %}
<tr><td colspan="2">暂无数据~~</td></tr>
{% endif %}
</tbody> </tbody>
</table> </table>
<div class="row"> <!--分页代码已被封装到统一模板文件中-->
<div class="col-lg-12"> {% include 'common/pagenation.html' %}
<span class="pagination_count" style="line-height: 40px;">共0条记录 | 每页50条</span>
<ul class="pagination pagination-lg pull-right" style="margin: 0 0 ;">
<li class="active"><a href="javascript:void(0);">1</a></li>
</ul>
</div>
</div>
</div> </div>
</div> </div>
{% endblock %}
{% block css %}
<link href="{{ buildStaticUrl('/plugins/datetimepicker/jquery.datetimepicker.min.css') }}" rel="stylesheet">
{% endblock %}
{% block js %}
<script src="{{ buildStaticUrl('/plugins/datetimepicker/jquery.datetimepicker.full.min.js') }}"></script>
<script src="{{ buildStaticUrl('/js/stat/product.js') }}"></script>
{% endblock %} {% endblock %}

View File

@@ -1,25 +1,6 @@
{% extends "common/layout_main.html" %} {% extends "common/layout_main.html" %}
{% block content %} {% block content %}
<div class="row border-bottom"> {% include "common/tab_stat.html" %}
<div class="col-lg-12">
<div class="tab_title">
<ul class="nav nav-pills">
<li class="current">
<a href="{{ buildUrl('/stat/index') }}">财务统计</a>
</li>
<li>
<a href="{{ buildUrl('/stat/food') }}">售卖统计</a>
</li>
<li>
<a href="{{ buildUrl('/stat/member') }}">会员消费统计</a>
</li>
<li>
<a href="{{ buildUrl('/stat/share') }}">分享统计</a>
</li>
</ul>
</div>
</div>
</div>
<div class="row m-t"> <div class="row m-t">
<div class="col-lg-12" id="container" style="height: 400px;" data-highcharts-chart="0"> <div class="col-lg-12" id="container" style="height: 400px;" data-highcharts-chart="0">
图标使用Highchart 图标使用Highchart
@@ -29,8 +10,7 @@
<div class="row p-w-m"> <div class="row p-w-m">
<div class="form-group"> <div class="form-group">
<div class="input-group"> <div class="input-group">
<input type="text" placeholder="请选择开始时间" name="date_from" class="form-control" <input type="text" placeholder="请选择开始时间" name="date_from" class="form-control" value="{{ search_con['date_from'] }}">
value="2018-05-08">
</div> </div>
</div> </div>
<div class="form-group m-r m-l"> <div class="form-group m-r m-l">
@@ -38,7 +18,7 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="input-group"> <div class="input-group">
<input type="text" placeholder="请选择结束时间" name="date_to" class="form-control" value="2018-06-07"> <input type="text" placeholder="请选择结束时间" name="date_to" class="form-control" value="{{ search_con['date_to'] }}">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
@@ -55,20 +35,29 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% if list %}
{% for item in list %}
<tr> <tr>
<td>2018-06-07</td> <td>{{ item.date }}</td>
<td>1007.00</td> <td>{{ item.total_pay_money }}</td>
</tr> </tr>
{% endfor %}
{% else %}
<tr><td colspan="2">暂无数据~~</td></tr>
{% endif %}
</tbody> </tbody>
</table> </table>
<div class="row"> <!--分页代码已被封装到统一模板文件中-->
<div class="col-lg-12"> {% include 'common/pagenation.html' %}
<span class="pagination_count" style="line-height: 40px;">共1条记录 | 每页50条</span>
<ul class="pagination pagination-lg pull-right" style="margin: 0 0 ;">
<li class="active"><a href="javascript:void(0);">1</a></li>
</ul>
</div>
</div>
</div> </div>
</div> </div>
{% endblock %}
{% block css %}
<link href="{{ buildStaticUrl('/plugins/datetimepicker/jquery.datetimepicker.min.css') }}" rel="stylesheet">
{% endblock %}
{% block js %}
<script src="{{ buildStaticUrl('/plugins/highcharts/highcharts.js') }}"></script>
<script src="{{ buildStaticUrl('/js/chart.js') }}"></script>
<script src="{{ buildStaticUrl('/plugins/datetimepicker/jquery.datetimepicker.full.min.js') }}"></script>
<script src="{{ buildStaticUrl('/js/stat/index.js') }}"></script>
{% endblock %} {% endblock %}

View File

@@ -1,33 +1,13 @@
{% extends "common/layout_main.html" %} {% extends "common/layout_main.html" %}
{% block content %} {% block content %}
<div class="row border-bottom"> {% include "common/tab_stat.html" %}
<div class="col-lg-12">
<div class="tab_title">
<ul class="nav nav-pills">
<li>
<a href="{{ buildUrl('/stat/index') }}">财务统计</a>
</li>
<li>
<a href="{{ buildUrl('/stat/food') }}">售卖统计</a>
</li>
<li class="current">
<a href="{{ buildUrl('/stat/member') }}">会员消费统计</a>
</li>
<li>
<a href="{{ buildUrl('/stat/share') }}">分享统计</a>
</li>
</ul>
</div>
</div>
</div>
<div class="row m-t"> <div class="row m-t">
<div class="col-lg-12 m-t"> <div class="col-lg-12 m-t">
<form class="form-inline" id="search_form_wrap"> <form class="form-inline" id="search_form_wrap">
<div class="row p-w-m"> <div class="row p-w-m">
<div class="form-group"> <div class="form-group">
<div class="input-group"> <div class="input-group">
<input type="text" placeholder="请选择开始时间" name="date_from" class="form-control" <input type="text" placeholder="请选择开始时间" name="date_from" class="form-control" value="{{ search_con['date_from'] }}">
value="2018-05-08">
</div> </div>
</div> </div>
<div class="form-group m-r m-l"> <div class="form-group m-r m-l">
@@ -35,7 +15,7 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="input-group"> <div class="input-group">
<input type="text" placeholder="请选择结束时间" name="date_to" class="form-control" value="2018-06-07"> <input type="text" placeholder="请选择结束时间" name="date_to" class="form-control" value="{{ search_con['date_to'] }}">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
@@ -54,25 +34,29 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% if list %}
{% for item in list %}
<tr> <tr>
<td>2018-06-07</td> <td>{{ item.date }}</td>
<td> <td>{{ item.member_info.nickname }}</td>
编程浪子 <td>{{ item.total_pay_money }}</td>
</td> <td>{{ item.total_shared_count }}</td>
<td>1003.00</td>
<td>57</td>
</tr> </tr>
{% endfor %}
{% else %}
<tr><td colspan="2">暂无数据~~</td></tr>
{% endif %}
</tbody> </tbody>
</table> </table>
<!--分页代码已被封装到统一模板文件中--> <!--分页代码已被封装到统一模板文件中-->
<div class="row"> {% include 'common/pagenation.html' %}
<div class="col-lg-12">
<span class="pagination_count" style="line-height: 40px;">共1条记录 | 每页50条</span>
<ul class="pagination pagination-lg pull-right" style="margin: 0 0 ;">
<li class="active"><a href="javascript:void(0);">1</a></li>
</ul>
</div>
</div>
</div> </div>
</div> </div>
{% endblock %}
{% block css %}
<link href="{{ buildStaticUrl('/plugins/datetimepicker/jquery.datetimepicker.min.css') }}" rel="stylesheet">
{% endblock %}
{% block js %}
<script src="{{ buildStaticUrl('/plugins/datetimepicker/jquery.datetimepicker.full.min.js') }}"></script>
<script src="{{ buildStaticUrl('/js/stat/member.js') }}"></script>
{% endblock %} {% endblock %}

View File

@@ -1,25 +1,6 @@
{% extends "common/layout_main.html" %} {% extends "common/layout_main.html" %}
{% block content %} {% block content %}
<div class="row border-bottom"> {% include "common/tab_stat.html" %}
<div class="col-lg-12">
<div class="tab_title">
<ul class="nav nav-pills">
<li>
<a href="{{ buildUrl('/stat/index') }}">财务统计</a>
</li>
<li>
<a href="{{ buildUrl('/stat/food') }}">售卖统计</a>
</li>
<li>
<a href="{{ buildUrl('/stat/member') }}">会员消费统计</a>
</li>
<li class="current">
<a href="{{ buildUrl('/stat/share') }}">分享统计</a>
</li>
</ul>
</div>
</div>
</div>
<div class="row m-t"> <div class="row m-t">
<div class="col-lg-12" id="container" style="height: 400px;" data-highcharts-chart="0"> <div class="col-lg-12" id="container" style="height: 400px;" data-highcharts-chart="0">
图标使用Highchart 图标使用Highchart
@@ -29,7 +10,7 @@
<div class="row p-w-m"> <div class="row p-w-m">
<div class="form-group"> <div class="form-group">
<div class="input-group"> <div class="input-group">
<input type="text" placeholder="请选择开始时间" name="date_from" class="form-control" value="2018-05-08"> <input type="text" placeholder="请选择开始时间" name="date_from" class="form-control" value="{{ search_con['date_from'] }}">
</div> </div>
</div> </div>
<div class="form-group m-r m-l"> <div class="form-group m-r m-l">
@@ -37,7 +18,7 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="input-group"> <div class="input-group">
<input type="text" placeholder="请选择结束时间" name="date_to" class="form-control" value="2018-06-07"> <input type="text" placeholder="请选择结束时间" name="date_to" class="form-control" value="{{ search_con['date_to'] }}">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
@@ -54,20 +35,29 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% if list %}
{% for item in list %}
<tr> <tr>
<td>2018-06-07</td> <td>{{ item.date }}</td>
<td>1839</td> <td>{{ item.total_shared_count }}</td>
</tr> </tr>
{% endfor %}
{% else %}
<tr><td colspan="2">暂无数据~~</td></tr>
{% endif %}
</tbody> </tbody>
</table> </table>
<div class="row"> <!--分页代码已被封装到统一模板文件中-->
<div class="col-lg-12"> {% include 'common/pagenation.html' %}
<span class="pagination_count" style="line-height: 40px;">共1条记录 | 每页50条</span>
<ul class="pagination pagination-lg pull-right" style="margin: 0 0 ;">
<li class="active"><a href="javascript:void(0);">1</a></li>
</ul>
</div>
</div>
</div> </div>
</div> </div>
{% endblock %}
{% block css %}
<link href="{{ buildStaticUrl('/plugins/datetimepicker/jquery.datetimepicker.min.css') }}" rel="stylesheet">
{% endblock %}
{% block js %}
<script src="{{ buildStaticUrl('/plugins/highcharts/highcharts.js') }}"></script>
<script src="{{ buildStaticUrl('/js/chart.js') }}"></script>
<script src="{{ buildStaticUrl('/plugins/datetimepicker/jquery.datetimepicker.full.min.js') }}"></script>
<script src="{{ buildStaticUrl('/js/stat/share.js') }}"></script>
{% endblock %} {% endblock %}

View File

@@ -9,7 +9,7 @@
<label class="col-lg-2 control-label">手机:</label> <label class="col-lg-2 control-label">手机:</label>
<div class="col-lg-10"> <div class="col-lg-10">
<input type="text" name="mobile" class="form-control" placeholder="请输入手机~~" readonly="" <input type="text" name="mobile" class="form-control" placeholder="请输入手机~~" readonly=""
value="{{ current_user.mobile }}"> value="{{ current_user.mobile }}">
</div> </div>
</div> </div>
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
@@ -17,7 +17,8 @@
<div class="form-group"> <div class="form-group">
<label class="col-lg-2 control-label">姓名:</label> <label class="col-lg-2 control-label">姓名:</label>
<div class="col-lg-10"> <div class="col-lg-10">
<input type="text" name="nickname" class="form-control" placeholder="请输入姓名~~" value="{{ current_user.nickname }}"> </div> <input type="text" name="nickname" class="form-control" placeholder="请输入姓名~~" value="{{ current_user.nickname }}">
</div>
</div> </div>
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
@@ -38,5 +39,6 @@
</div> </div>
{% endblock %} {% endblock %}
{% block js %} {% block js %}
<script src="{{buildStaticUrl('/js/user/edit.js')}}"></script> <script src="{{ buildStaticUrl('/js/user/edit.js') }}"></script>
{% endblock %} {% endblock %}

View File

@@ -1,46 +1,54 @@
{% extends "common/layout_user.html" %} {% extends "common/layout_user.html" %}
{% block content %} {% block content %}
<div class="loginColumns animated fadeInDown"> <div class="loginColumns animated fadeInDown">
<div class="row"> <div class="row">
<div class="col-md-6 text-center">
<div class="col-md-6 text-center"> <h3 class="font-bold">{{ config.SEO_TITLE }}</h3>
<h2 class="font-bold">{{ config.SEO_TITLE }}</h2> <div class="row">
<p> <div class="col-xs-6 col-md-6">
<img src="{{ buildStaticUrl('/images/common/mini_qrcode.jpg') }}" width="300px"> <a href="javascript:void(0);" class="thumbnail">
</p> <img src="{{ buildStaticUrl('/images/common/mini_qrcode.jpg') }}" width="200px">
<p class="text-danger"> </a>
扫描关注查看Demo <p>小程序码</p>
</p> </div>
</div> <div class="col-xs-6 col-md-6">
<div class="col-md-6"> <a href="javascript:void(0);" class="thumbnail">
<div class="ibox-content"> <img src="{{ buildStaticUrl('/images/common/qrcode.jpg') }}" width="200px">
<div class="m-t login_wrap" role="form" > </a>
<div class="form-group text-center"> <p>公众号码</p>
<h2 class="font-bold">登录</h2>
</div> </div>
<div class="form-group">
<input type="text" name="login_name" class="form-control" placeholder="请输入登录用户名">
</div>
<div class="form-group">
<input type="password" name="login_pwd" class="form-control" placeholder="请输入登录密码">
</div>
<button type="button" class="btn btn-primary block full-width m-b do-login">登录</button>
</div> </div>
</div>
</div> </div>
</div> <div class="col-md-6">
<hr> <div class="ibox-content">
<div class="row"> <div class="m-t login_wrap">
<div class="col-md-6"> <div class="form-group text-center">
{{ config.SEO_TITLE }} <a href="{{ buildUrl('/') }}" target="_blank"> 技术支持 </a> <h2 class="font-bold">登录</h2>
</div> </div>
<div class="col-md-6 text-right"> <div class="form-group">
<small>© 2018</small> <input type="text" name="login_name" class="form-control" placeholder="请输入登录用户名">
</div> </div>
</div> <div class="form-group">
</div> <input type="password" name="login_pwd" class="form-control" placeholder="请输入登录密码">
</div>
<button type="button" class="btn btn-primary block full-width m-b do-login">登录</button>
<h3>账号和密码请关注左侧公众号码 回复"<span class="text-danger">订餐小程序</span>"获取,每日更新一次 </h3>
</div>
</div>
</div>
</div>
<hr>
<div class="row">
<div class="col-md-6">
{{ config.SEO_TITLE }} <a href="{{ buildUrl('/') }}" target="_blank"> 技术支持 </a>
</div>
<div class="col-md-6 text-right">
<small>© 2018</small>
</div>
</div>
</div>
{% endblock %} {% endblock %}
{% block js %} {% block js %}
<script src="{{buildStaticUrl('/js/user/login.js')}}"></script> <script src="{{ buildStaticUrl('/js/user/login.js') }}"></script>
{% endblock %} {% endblock %}