python学习
This commit is contained in:
559
.idea/workspace.xml
generated
559
.idea/workspace.xml
generated
@@ -2,82 +2,43 @@
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<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$/common/libs/pay/PayService.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/common/libs/pay/WeChatService.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/common/libs/queue/QueueService.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/common/models/food/WxShareHistory.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/common/models/member/MemberAddress.py" 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 afterPath="$PROJECT_DIR$/web/static/js/chart.js" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/web/static/js/index/index.js" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/web/static/js/stat/index.js" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/web/static/js/stat/member.js" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/web/static/js/stat/product.js" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/web/static/js/stat/share.js" 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$/config/base_setting.py" beforeDir="false" afterPath="$PROJECT_DIR$/config/base_setting.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/manager.py" beforeDir="false" afterPath="$PROJECT_DIR$/manager.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/mina" beforeDir="false" afterPath="$PROJECT_DIR$/mina" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/mina/app.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/app.js" 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$/mina/pages/cart/index.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/cart/index.wxml" 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$/mina/pages/food/index.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/food/index.wxml" 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$/mina/pages/food/info.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/food/info.wxml" 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$/mina/pages/index/index.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/index/index.wxml" 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$/mina/pages/my/addressList.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/my/addressList.wxml" 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$/mina/pages/my/addressSet.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/my/addressSet.wxml" 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$/mina/pages/my/comment.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/my/comment.wxml" 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$/mina/pages/my/index.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/my/index.js" 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$/mina/pages/my/order_info.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/my/order_info.wxml" 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$/mina/pages/my/order_list.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/my/order_list.wxml" 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$/mina/pages/order/index.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/order/index.wxml" 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/controllers/api/Member.py" beforeDir="false" afterPath="$PROJECT_DIR$/web/controllers/api/Member.py" 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/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" />
|
||||
<change beforePath="$PROJECT_DIR$/web/controllers/index.py" beforeDir="false" afterPath="$PROJECT_DIR$/web/controllers/index.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$/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$/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$/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$/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$/web/static/js/common.js" beforeDir="false" afterPath="$PROJECT_DIR$/web/static/js/common.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$/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$/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$/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$/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$/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$/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$/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$/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$/web/templates/account/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/account/index.html" 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$/web/templates/food/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/food/index.html" 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$/web/templates/member/comment.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/member/comment.html" 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$/web/templates/member/info.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/member/info.html" 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$/web/templates/stat/food.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/stat/food.html" 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$/web/templates/stat/member.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/stat/member.html" 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/templates/user/edit.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/user/edit.html" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/web/templates/user/login.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/user/login.html" afterDir="false" />
|
||||
</list>
|
||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
@@ -88,19 +49,31 @@
|
||||
<component name="FileEditorManager">
|
||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
||||
<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">
|
||||
<state relative-caret-position="1116">
|
||||
<caret line="36" selection-start-line="36" selection-end-line="36" />
|
||||
<state relative-caret-position="-1674" />
|
||||
</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>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<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">
|
||||
<state relative-caret-position="279">
|
||||
<caret line="9" selection-start-line="9" selection-end-line="9" />
|
||||
<state relative-caret-position="248">
|
||||
<caret line="20" lean-forward="true" selection-start-line="20" selection-end-line="20" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@@ -108,62 +81,19 @@
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<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 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>
|
||||
</file>
|
||||
<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">
|
||||
<state relative-caret-position="279">
|
||||
<caret line="11" selection-start-line="11" selection-end-line="11" />
|
||||
</state>
|
||||
<state relative-caret-position="-186" />
|
||||
</provider>
|
||||
</entry>
|
||||
</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>
|
||||
</component>
|
||||
<component name="FileTemplateManagerImpl">
|
||||
@@ -175,7 +105,6 @@
|
||||
</component>
|
||||
<component name="FindInProjectRecents">
|
||||
<findStrings>
|
||||
<find>login_name</find>
|
||||
<find>render_template</find>
|
||||
<find>set</find>
|
||||
<find>user.uid</find>
|
||||
@@ -205,6 +134,7 @@
|
||||
<find>data</find>
|
||||
<find>onSha</find>
|
||||
<find>buyNo</find>
|
||||
<find>getFor</find>
|
||||
</findStrings>
|
||||
<replaceStrings>
|
||||
<replace>ops_render</replace>
|
||||
@@ -216,7 +146,6 @@
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="CHANGED_PATHS">
|
||||
<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/templates/user/edit.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$/application.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$/mina/pages/food/index.wxml" />
|
||||
<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$/config/base_setting.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>
|
||||
</option>
|
||||
</component>
|
||||
@@ -280,8 +210,8 @@
|
||||
<packageJsonPaths />
|
||||
</component>
|
||||
<component name="ProjectFrameBounds">
|
||||
<option name="x" value="44" />
|
||||
<option name="y" value="65" />
|
||||
<option name="x" value="108" />
|
||||
<option name="y" value="59" />
|
||||
<option name="width" value="909" />
|
||||
<option name="height" value="939" />
|
||||
</component>
|
||||
@@ -302,49 +232,32 @@
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="common" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="jobs" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="common" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="libs" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="jobs" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="tasks" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="common" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="libs" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="member" 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" />
|
||||
<item name="jobs" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="tasks" 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="web" type="462c0819:PsiDirectoryNode" />
|
||||
</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>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
@@ -356,7 +269,7 @@
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="web" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="templates" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="food" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="stat" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
@@ -376,7 +289,7 @@
|
||||
<component name="PropertiesComponent">
|
||||
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
|
||||
<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_npm_path_reset_for_default_project" value="true" />
|
||||
<property name="options.lastSelected" value="com.jetbrains.python.configuration.PythonSdkConfigurable" />
|
||||
@@ -387,11 +300,11 @@
|
||||
</component>
|
||||
<component name="RecentsManager">
|
||||
<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\templates\common" />
|
||||
<recent name="D:\order\web\templates\food" />
|
||||
<recent name="D:\order\common\models" />
|
||||
<recent name="D:\order\web\controllers\api" />
|
||||
<recent name="D:\order\web\static\js" />
|
||||
<recent name="D:\order\web\templates\user" />
|
||||
</key>
|
||||
<key name="MoveFile.RECENT_KEYS">
|
||||
<recent name="D:\order\common\libs" />
|
||||
@@ -535,7 +448,14 @@
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1564741445223</updated>
|
||||
</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 />
|
||||
</component>
|
||||
<component name="TodoView">
|
||||
@@ -548,9 +468,9 @@
|
||||
</todo-panel>
|
||||
</component>
|
||||
<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>
|
||||
<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="Favorites" order="2" side_tool="true" />
|
||||
<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="Docker" order="7" 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="Version Control" order="11" />
|
||||
<window_info anchor="bottom" id="Python Console" order="12" />
|
||||
@@ -589,120 +509,6 @@
|
||||
<option name="LAST_COMMIT_MESSAGE" value="python学习" />
|
||||
</component>
|
||||
<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">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="558">
|
||||
@@ -740,11 +546,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</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">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
@@ -765,13 +566,6 @@
|
||||
<entry file="file://$PROJECT_DIR$/web/static/js/finance/index.js">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</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">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="330">
|
||||
@@ -847,16 +641,6 @@
|
||||
<entry file="file://$PROJECT_DIR$/common/libs/member/CartService.py">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</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">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="279">
|
||||
@@ -878,18 +662,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</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">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
@@ -906,5 +678,152 @@
|
||||
</state>
|
||||
</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/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>
|
||||
</project>
|
||||
@@ -1,8 +1,57 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from application import app,db
|
||||
from flask import Blueprint
|
||||
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.route("/")
|
||||
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 -*-
|
||||
from flask import Blueprint
|
||||
from flask import Blueprint,request
|
||||
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.route( "/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" )
|
||||
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" )
|
||||
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" )
|
||||
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
|
||||
}, 100);
|
||||
},
|
||||
buildUrl:function( path ,params ){
|
||||
buildUrl:function( path ,params ){
|
||||
var url = "" + path;
|
||||
var _paramUrl = "";
|
||||
if( params ){
|
||||
@@ -150,11 +150,11 @@ var common_ops = {
|
||||
}
|
||||
return url + _paramUrl;
|
||||
},
|
||||
buildPicUrl:function( img_key ){
|
||||
buildPicUrl:function( img_key ){
|
||||
var domain = $(".hidden_layout_wrap input[name=domain]").val();
|
||||
var prefix_url = $(".hidden_layout_wrap input[name=prefix_url]").val();
|
||||
return domain + prefix_url + img_key;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$(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("正在处理!!请不要重复提交~~");
|
||||
return;
|
||||
}
|
||||
|
||||
var login_name = $(".login_wrap input[name=login_name]").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">
|
||||
<option value="-1">请选择状态</option>
|
||||
{% 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 %}
|
||||
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
<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="text" name="mix_kw" placeholder="请输入姓名或者手机号码" class="form-control" value="{{ search_con['mix_kw'] }}">
|
||||
<input type="hidden" name="p" value="{{ search_con['p'] }}">
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-primary search">
|
||||
<i class="fa fa-search"></i>搜索
|
||||
@@ -37,7 +36,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<table class="table table-bordered m-t">
|
||||
<table class="table table-bordered m-t">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>序号</th>
|
||||
@@ -81,9 +80,7 @@
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<!--分页代码已被封装到统一模板文件中-->
|
||||
<!--分页代码已被封装到统一模板文件中-->
|
||||
{% include 'common/pagenation.html' %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -8,28 +8,28 @@
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">姓名:</label>
|
||||
<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 class="hr-line-dashed"></div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">手机:</label>
|
||||
<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 class="hr-line-dashed"></div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">邮箱:</label>
|
||||
<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 class="hr-line-dashed"></div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">登录名:</label>
|
||||
<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 class="hr-line-dashed"></div>
|
||||
@@ -42,7 +42,7 @@
|
||||
<div class="hr-line-dashed"></div>
|
||||
<div class="form-group">
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
{% for item in list %}
|
||||
<tr>
|
||||
<td>{{ item.name }}</td>
|
||||
<td>{{ cat_mapping[ item.cat_id].name }}</td>
|
||||
<td>{{ item.name }}</td>
|
||||
<td>{{ item.price }}</td>
|
||||
<td>{{ item.stock }}</td>
|
||||
<td>{{ item.tags }}</td>
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
<h5>营收概况</h5>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
<h1 class="no-margins">1005.00</h1>
|
||||
<small>近30日:31177.00</small>
|
||||
<h1 class="no-margins">{{ data.finance.today }}</h1>
|
||||
<small>近30日:{{ data.finance.month }}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -21,8 +21,8 @@
|
||||
<h5>订单</h5>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
<h1 class="no-margins">988</h1>
|
||||
<small>近30日:29383</small>
|
||||
<h1 class="no-margins">{{ data.order.today }}</h1>
|
||||
<small>近30日:{{ data.order.today }}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -33,9 +33,9 @@
|
||||
<h5>会员</h5>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
<h1 class="no-margins">358</h1>
|
||||
<small>今日新增:77</small>
|
||||
<small>近30日新增:2454</small>
|
||||
<h1 class="no-margins">{{ data.member.total }}</h1>
|
||||
<small>今日新增:{{ data.member.today_new }}</small>
|
||||
<small>近30日新增:{{ data.member.month_new }}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -46,8 +46,8 @@
|
||||
<h5>分享</h5>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
<h1 class="no-margins">1250</h1>
|
||||
<small>近30日:45980</small>
|
||||
<h1 class="no-margins">{{ data.shared.today }}</h1>
|
||||
<small>近30日:{{ data.shared.month }}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -61,4 +61,9 @@
|
||||
</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 %}
|
||||
@@ -1,19 +1,6 @@
|
||||
{% extends "common/layout_main.html" %}
|
||||
{% block content %}
|
||||
<div class="row border-bottom">
|
||||
<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>
|
||||
{% include "common/tab_member.html" %}
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<table class="table table-bordered m-t">
|
||||
@@ -27,27 +14,29 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% if list %}
|
||||
{% for item in list %}
|
||||
<tr>
|
||||
<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>{{ item.member_info.nickname }}</td>
|
||||
<td>
|
||||
编程浪子
|
||||
{% for item_food in item.foods %}
|
||||
{{ item_food.name }}、
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>小鸡炖蘑菇</td>
|
||||
<td>非常愉快的订餐服务</td>
|
||||
<td>8</td>
|
||||
<td>{{ item.content }}</td>
|
||||
<td>{{ item.score }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<tr><td colspan="5">暂无数据</td></tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="row">
|
||||
<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>
|
||||
<!--分页代码已被封装到统一模板文件中-->
|
||||
{% include 'common/pagenation.html' %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,19 +1,6 @@
|
||||
{% extends "common/layout_main.html" %}
|
||||
{% block content %}
|
||||
<div class="row border-bottom">
|
||||
<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>
|
||||
{% include "common/tab_member.html" %}
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<form class="form-inline wrap_search">
|
||||
@@ -22,13 +9,13 @@
|
||||
<select name="status" class="form-control inline">
|
||||
<option value="-1">请选择状态</option>
|
||||
{% 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 %}
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-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'] }}">
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-primary search">
|
||||
@@ -51,7 +38,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% if list %}
|
||||
{% if list %}
|
||||
{% for item in list %}
|
||||
<tr>
|
||||
<td><img alt="image" class="img-circle" src="{{ item.avatar }}" style="width: 40px;height: 40px;"></td>
|
||||
@@ -85,10 +72,11 @@
|
||||
</tbody>
|
||||
</table>
|
||||
<!--分页代码已被封装到统一模板文件中-->
|
||||
{% include 'common/pagenation.html'%}
|
||||
{% include 'common/pagenation.html' %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block js %}
|
||||
{% block js %}
|
||||
<script src="{{ buildStaticUrl('/js/member/index.js') }}"></script>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
@@ -1,25 +1,12 @@
|
||||
{% extends "common/layout_main.html" %}
|
||||
{% block content %}
|
||||
<div class="row border-bottom">
|
||||
<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>
|
||||
{% include "common/tab_member.html" %}
|
||||
<div class="row m-t">
|
||||
<div class="col-lg-12">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<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 }}">
|
||||
<i class="fa fa-pencil"></i>编辑
|
||||
</a>
|
||||
@@ -67,9 +54,18 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% if pay_order_list %}
|
||||
{% for item in pay_order_list %}
|
||||
<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>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<td colspan="4">暂无订单</td>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -85,10 +81,17 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
</tr>
|
||||
{% if comment_list %}
|
||||
{% for item in comment_list %}
|
||||
<tr>
|
||||
<td colspan="3">暂无评论</td>
|
||||
<td>{{ item.created_time }}</td>
|
||||
<td>{{ item.score }}</td>
|
||||
<td>{{ item.content }}</td>
|
||||
</tr>
|
||||
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<td colspan="3">暂无评论</td>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@@ -1,19 +1,6 @@
|
||||
{% extends "common/layout_main.html" %}
|
||||
{% block content %}
|
||||
<div class="row border-bottom">
|
||||
<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>
|
||||
{% include "common/tab_member.html" %}
|
||||
<div class="row mg-t20 wrap_member_set">
|
||||
<div class="col-lg-12">
|
||||
<h2 class="text-center">会员设置</h2>
|
||||
|
||||
@@ -1,33 +1,13 @@
|
||||
{% extends "common/layout_main.html" %}
|
||||
{% block content %}
|
||||
<div class="row border-bottom">
|
||||
<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>
|
||||
{% include "common/tab_stat.html" %}
|
||||
<div class="row m-t">
|
||||
<div class="col-lg-12 m-t">
|
||||
<form class="form-inline" id="search_form_wrap">
|
||||
<div class="row p-w-m">
|
||||
<div class="form-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 class="form-group m-r m-l">
|
||||
@@ -35,7 +15,7 @@
|
||||
</div>
|
||||
<div class="form-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 class="form-group">
|
||||
@@ -54,19 +34,29 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% if list %}
|
||||
{% for item in list %}
|
||||
<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>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<tr><td colspan="2">暂无数据~~</td></tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<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>
|
||||
<!--分页代码已被封装到统一模板文件中-->
|
||||
{% include 'common/pagenation.html' %}
|
||||
</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 %}
|
||||
@@ -1,25 +1,6 @@
|
||||
{% extends "common/layout_main.html" %}
|
||||
{% block content %}
|
||||
<div class="row border-bottom">
|
||||
<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>
|
||||
{% include "common/tab_stat.html" %}
|
||||
<div class="row m-t">
|
||||
<div class="col-lg-12" id="container" style="height: 400px;" data-highcharts-chart="0">
|
||||
图标使用Highchart
|
||||
@@ -29,8 +10,7 @@
|
||||
<div class="row p-w-m">
|
||||
<div class="form-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 class="form-group m-r m-l">
|
||||
@@ -38,7 +18,7 @@
|
||||
</div>
|
||||
<div class="form-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 class="form-group">
|
||||
@@ -55,20 +35,29 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% if list %}
|
||||
{% for item in list %}
|
||||
<tr>
|
||||
<td>2018-06-07</td>
|
||||
<td>1007.00</td>
|
||||
<td>{{ item.date }}</td>
|
||||
<td>{{ item.total_pay_money }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<tr><td colspan="2">暂无数据~~</td></tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="row">
|
||||
<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>
|
||||
<!--分页代码已被封装到统一模板文件中-->
|
||||
{% include 'common/pagenation.html' %}
|
||||
</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 %}
|
||||
@@ -1,33 +1,13 @@
|
||||
{% extends "common/layout_main.html" %}
|
||||
{% block content %}
|
||||
<div class="row border-bottom">
|
||||
<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>
|
||||
{% include "common/tab_stat.html" %}
|
||||
<div class="row m-t">
|
||||
<div class="col-lg-12 m-t">
|
||||
<form class="form-inline" id="search_form_wrap">
|
||||
<div class="row p-w-m">
|
||||
<div class="form-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 class="form-group m-r m-l">
|
||||
@@ -35,7 +15,7 @@
|
||||
</div>
|
||||
<div class="form-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 class="form-group">
|
||||
@@ -54,25 +34,29 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% if list %}
|
||||
{% for item in list %}
|
||||
<tr>
|
||||
<td>2018-06-07</td>
|
||||
<td>
|
||||
编程浪子
|
||||
</td>
|
||||
<td>1003.00</td>
|
||||
<td>57</td>
|
||||
<td>{{ item.date }}</td>
|
||||
<td>{{ item.member_info.nickname }}</td>
|
||||
<td>{{ item.total_pay_money }}</td>
|
||||
<td>{{ item.total_shared_count }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<tr><td colspan="2">暂无数据~~</td></tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
<!--分页代码已被封装到统一模板文件中-->
|
||||
<div class="row">
|
||||
<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>
|
||||
{% include 'common/pagenation.html' %}
|
||||
</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 %}
|
||||
@@ -1,25 +1,6 @@
|
||||
{% extends "common/layout_main.html" %}
|
||||
{% block content %}
|
||||
<div class="row border-bottom">
|
||||
<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>
|
||||
{% include "common/tab_stat.html" %}
|
||||
<div class="row m-t">
|
||||
<div class="col-lg-12" id="container" style="height: 400px;" data-highcharts-chart="0">
|
||||
图标使用Highchart
|
||||
@@ -29,7 +10,7 @@
|
||||
<div class="row p-w-m">
|
||||
<div class="form-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 class="form-group m-r m-l">
|
||||
@@ -37,7 +18,7 @@
|
||||
</div>
|
||||
<div class="form-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 class="form-group">
|
||||
@@ -54,20 +35,29 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% if list %}
|
||||
{% for item in list %}
|
||||
<tr>
|
||||
<td>2018-06-07</td>
|
||||
<td>1839</td>
|
||||
<td>{{ item.date }}</td>
|
||||
<td>{{ item.total_shared_count }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<tr><td colspan="2">暂无数据~~</td></tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="row">
|
||||
<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>
|
||||
<!--分页代码已被封装到统一模板文件中-->
|
||||
{% include 'common/pagenation.html' %}
|
||||
</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 %}
|
||||
@@ -9,7 +9,7 @@
|
||||
<label class="col-lg-2 control-label">手机:</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" name="mobile" class="form-control" placeholder="请输入手机~~" readonly=""
|
||||
value="{{ current_user.mobile }}">
|
||||
value="{{ current_user.mobile }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="hr-line-dashed"></div>
|
||||
@@ -17,7 +17,8 @@
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">姓名:</label>
|
||||
<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 class="hr-line-dashed"></div>
|
||||
|
||||
@@ -38,5 +39,6 @@
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block js %}
|
||||
<script src="{{buildStaticUrl('/js/user/edit.js')}}"></script>
|
||||
<script src="{{ buildStaticUrl('/js/user/edit.js') }}"></script>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
@@ -1,46 +1,54 @@
|
||||
{% extends "common/layout_user.html" %}
|
||||
{% block content %}
|
||||
<div class="loginColumns animated fadeInDown">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-6 text-center">
|
||||
<h2 class="font-bold">{{ config.SEO_TITLE }}</h2>
|
||||
<p>
|
||||
<img src="{{ buildStaticUrl('/images/common/mini_qrcode.jpg') }}" width="300px">
|
||||
</p>
|
||||
<p class="text-danger">
|
||||
扫描关注查看Demo
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="ibox-content">
|
||||
<div class="m-t login_wrap" role="form" >
|
||||
<div class="form-group text-center">
|
||||
<h2 class="font-bold">登录</h2>
|
||||
<div class="loginColumns animated fadeInDown">
|
||||
<div class="row">
|
||||
<div class="col-md-6 text-center">
|
||||
<h3 class="font-bold">{{ config.SEO_TITLE }}</h3>
|
||||
<div class="row">
|
||||
<div class="col-xs-6 col-md-6">
|
||||
<a href="javascript:void(0);" class="thumbnail">
|
||||
<img src="{{ buildStaticUrl('/images/common/mini_qrcode.jpg') }}" width="200px">
|
||||
</a>
|
||||
<p>小程序码</p>
|
||||
</div>
|
||||
<div class="col-xs-6 col-md-6">
|
||||
<a href="javascript:void(0);" class="thumbnail">
|
||||
<img src="{{ buildStaticUrl('/images/common/qrcode.jpg') }}" width="200px">
|
||||
</a>
|
||||
<p>公众号码</p>
|
||||
</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>
|
||||
<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>
|
||||
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="ibox-content">
|
||||
<div class="m-t login_wrap">
|
||||
<div class="form-group text-center">
|
||||
<h2 class="font-bold">登录</h2>
|
||||
</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>
|
||||
<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 %}
|
||||
{% block js %}
|
||||
<script src="{{buildStaticUrl('/js/user/login.js')}}"></script>
|
||||
<script src="{{ buildStaticUrl('/js/user/login.js') }}"></script>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user