python学习
This commit is contained in:
559
.idea/workspace.xml
generated
559
.idea/workspace.xml
generated
@@ -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>
|
||||||
@@ -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 )
|
||||||
@@ -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 )
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
99
web/static/js/chart.js
Normal file
99
web/static/js/chart.js
Normal 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;
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -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() {
|
||||||
|
|||||||
28
web/static/js/index/index.js
Normal file
28
web/static/js/index/index.js
Normal 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();
|
||||||
|
});
|
||||||
0
web/static/js/stat/index.js
Normal file
0
web/static/js/stat/index.js
Normal file
34
web/static/js/stat/member.js
Normal file
34
web/static/js/stat/member.js
Normal 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();
|
||||||
|
});
|
||||||
34
web/static/js/stat/product.js
Normal file
34
web/static/js/stat/product.js
Normal 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();
|
||||||
|
});
|
||||||
46
web/static/js/stat/share.js
Normal file
46
web/static/js/stat/share.js
Normal 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();
|
||||||
|
});
|
||||||
@@ -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();
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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 %}
|
||||||
@@ -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 %}
|
||||||
|
|||||||
@@ -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 %}
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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 %}
|
||||||
@@ -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 %}
|
||||||
@@ -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 %}
|
||||||
@@ -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 %}
|
||||||
@@ -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 %}
|
||||||
|
|
||||||
|
|||||||
@@ -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 %}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user