├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── app.py ├── init.sql ├── screen_shoot ├── 买家个人中心.jpg ├── 买家个人信息修改界面.jpg ├── 买家主界面.jpg ├── 买家密码修改界面.jpg ├── 买家菜单界面.jpg ├── 买家购物车界面.jpg ├── 商家个人中心.jpg ├── 商家个人信息修改界面.jpg ├── 商家主界面.jpg ├── 商家修改菜品界面.jpg ├── 商家密码修改界面.jpg ├── 商家添加菜品界面.jpg ├── 商家菜单界面.jpg ├── 注册界面.jpg ├── 登录界面.jpg ├── 管理员主界面.jpg └── 首页.jpg ├── static ├── css │ ├── .DS_Store │ ├── OrderPage.css │ ├── animate.css │ ├── animate1.css │ ├── bootstrap-datepicker.min.css │ ├── bootstrap-datetimepicker.min.css │ ├── bootstrap.css │ ├── bootstrap.css.map │ ├── bootstrap1.css │ ├── bootstrap1.css.map │ ├── bootstrap1.min.css │ ├── cartstyle.css │ ├── flexslider.css │ ├── font-awesome.css │ ├── font-awesome1.css │ ├── icomoon.css │ ├── magnific-popup.css │ ├── magnific-popup1.css │ ├── owl.carousel.min.css │ ├── owl.theme.default.min.css │ ├── personal.css │ ├── screen.css │ ├── style.css │ ├── style.css.map │ ├── style1.css │ ├── test.css │ └── themify-icons.css ├── fonts │ ├── .DS_Store │ ├── FontAwesome.otf │ ├── bootstrap │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── fontawesome-webfont.woff2 │ ├── icomoon │ │ ├── icomoon.eot │ │ ├── icomoon.svg │ │ ├── icomoon.ttf │ │ └── icomoon.woff │ └── themify-icons │ │ ├── themify.eot │ │ ├── themify.svg │ │ ├── themify.ttf │ │ └── themify.woff ├── images │ ├── .DS_Store │ ├── Slider.jpg │ ├── icons-s2205f6ae3b.png │ ├── img_1.jpg │ ├── img_2.jpg │ ├── img_3.jpg │ ├── img_4.jpg │ ├── img_5.jpg │ ├── img_6.jpg │ ├── img_7.jpg │ ├── img_bg_1.jpg │ ├── img_bg_2.jpg │ ├── loader.gif │ ├── logo.png │ ├── pizza.jpg │ ├── res_1.jpg │ └── res_2.jpg ├── js │ ├── .DS_Store │ ├── app.js │ ├── bootstrap-datepicker.min.js │ ├── bootstrap-datetimepicker.min.js │ ├── bootstrap.js │ ├── bootstrap.min.js │ ├── cart.js │ ├── google_map.js │ ├── jquery-1.11.2.min.js │ ├── jquery-2.2.1.min.js │ ├── jquery.countTo.js │ ├── jquery.easing.1.3.js │ ├── jquery.magnific-popup.min.js │ ├── jquery.min.js │ ├── jquery.mixitup.js │ ├── jquery.stellar.min.js │ ├── jquery.waypoints.min.js │ ├── magnific-popup-options.js │ ├── main.js │ ├── modernizr-2.6.2.min.js │ ├── moment.min.js │ ├── myOrder.js │ ├── owl.carousel.min.js │ ├── respond.min.js │ ├── smooth-scroll.js │ ├── template.js │ └── wow.js └── sass │ ├── .DS_Store │ ├── _bootstrap-compass.scss │ ├── _bootstrap-mincer.scss │ ├── _bootstrap-sprockets.scss │ ├── bootstrap.scss │ ├── bootstrap │ ├── _alerts.scss │ ├── _badges.scss │ ├── _breadcrumbs.scss │ ├── _button-groups.scss │ ├── _buttons.scss │ ├── _carousel.scss │ ├── _close.scss │ ├── _code.scss │ ├── _component-animations.scss │ ├── _dropdowns.scss │ ├── _forms.scss │ ├── _glyphicons.scss │ ├── _grid.scss │ ├── _input-groups.scss │ ├── _jumbotron.scss │ ├── _labels.scss │ ├── _list-group.scss │ ├── _media.scss │ ├── _mixins.scss │ ├── _modals.scss │ ├── _navbar.scss │ ├── _navs.scss │ ├── _normalize.scss │ ├── _pager.scss │ ├── _pagination.scss │ ├── _panels.scss │ ├── _popovers.scss │ ├── _print.scss │ ├── _progress-bars.scss │ ├── _responsive-embed.scss │ ├── _responsive-utilities.scss │ ├── _scaffolding.scss │ ├── _tables.scss │ ├── _theme.scss │ ├── _thumbnails.scss │ ├── _tooltip.scss │ ├── _type.scss │ ├── _utilities.scss │ ├── _variables.scss │ ├── _wells.scss │ └── mixins │ │ ├── _alerts.scss │ │ ├── _background-variant.scss │ │ ├── _border-radius.scss │ │ ├── _buttons.scss │ │ ├── _center-block.scss │ │ ├── _clearfix.scss │ │ ├── _forms.scss │ │ ├── _gradients.scss │ │ ├── _grid-framework.scss │ │ ├── _grid.scss │ │ ├── _hide-text.scss │ │ ├── _image.scss │ │ ├── _labels.scss │ │ ├── _list-group.scss │ │ ├── _nav-divider.scss │ │ ├── _nav-vertical-align.scss │ │ ├── _opacity.scss │ │ ├── _pagination.scss │ │ ├── _panels.scss │ │ ├── _progress-bar.scss │ │ ├── _reset-filter.scss │ │ ├── _reset-text.scss │ │ ├── _resize.scss │ │ ├── _responsive-visibility.scss │ │ ├── _size.scss │ │ ├── _tab-focus.scss │ │ ├── _table-row.scss │ │ ├── _text-emphasis.scss │ │ ├── _text-overflow.scss │ │ └── _vendor-prefixes.scss │ └── style.scss └── templates ├── 404.html ├── CommentForm.html ├── Menu.html ├── MenuAdd.html ├── MenuModify.html ├── MerchantIndex.html ├── MerchantMenu.html ├── MerchantModifyPerInfo.html ├── MerchantModifyPwd.html ├── MerchantOrderPage.html ├── MerchantPersonal.html ├── ModifyPassword.html ├── ModifyPersonalInfo.html ├── MyComments.html ├── OrderPage.html ├── Register.html ├── ResComment.html ├── ResCommentList.html ├── UserRestList.html ├── WriteComments.html ├── adminCommentList.html ├── adminRestList.html ├── index.html ├── logIn.html ├── myOrder.html └── personal.html /.gitattributes: -------------------------------------------------------------------------------- 1 | *.css linguist-language=python 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | .DS_Store 6 | 7 | # data files 8 | data/*.csv 9 | 10 | # draw pic file 11 | plot_roc1.py 12 | plot_roc2.py 13 | 14 | # bash file 15 | run.sh 16 | 17 | # C extensions 18 | *.so 19 | 20 | # Distribution / packaging 21 | .Python 22 | build/ 23 | develop-eggs/ 24 | dist/ 25 | downloads/ 26 | eggs/ 27 | .eggs/ 28 | lib/ 29 | lib64/ 30 | parts/ 31 | sdist/ 32 | var/ 33 | wheels/ 34 | pip-wheel-metadata/ 35 | share/python-wheels/ 36 | *.egg-info/ 37 | .installed.cfg 38 | *.egg 39 | MANIFEST 40 | 41 | # PyInstaller 42 | # Usually these files are written by a python script from a template 43 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 44 | *.manifest 45 | *.spec 46 | 47 | # Installer logs 48 | pip-log.txt 49 | pip-delete-this-directory.txt 50 | 51 | # Unit test / coverage reports 52 | htmlcov/ 53 | .tox/ 54 | .nox/ 55 | .coverage 56 | .coverage.* 57 | .cache 58 | nosetests.xml 59 | coverage.xml 60 | *.cover 61 | *.py,cover 62 | .hypothesis/ 63 | .pytest_cache/ 64 | 65 | # Translations 66 | *.mo 67 | *.pot 68 | 69 | # Django stuff: 70 | *.log 71 | local_settings.py 72 | db.sqlite3 73 | db.sqlite3-journal 74 | 75 | # Flask stuff: 76 | instance/ 77 | .webassets-cache 78 | 79 | # Scrapy stuff: 80 | .scrapy 81 | 82 | # Sphinx documentation 83 | docs/_build/ 84 | 85 | # PyBuilder 86 | target/ 87 | 88 | # Jupyter Notebook 89 | .ipynb_checkpoints 90 | 91 | # IPython 92 | profile_default/ 93 | ipython_config.py 94 | 95 | # pyenv 96 | .python-version 97 | 98 | # pipenv 99 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 100 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 101 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 102 | # install all needed dependencies. 103 | #Pipfile.lock 104 | 105 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 106 | __pypackages__/ 107 | 108 | # Celery stuff 109 | celerybeat-schedule 110 | celerybeat.pid 111 | 112 | # SageMath parsed files 113 | *.sage.py 114 | 115 | # Environments 116 | .env 117 | .venv 118 | env/ 119 | venv/ 120 | ENV/ 121 | env.bak/ 122 | venv.bak/ 123 | 124 | # Spyder project settings 125 | .spyderproject 126 | .spyproject 127 | 128 | # Rope project settings 129 | .ropeproject 130 | 131 | # mkdocs documentation 132 | /site 133 | 134 | # mypy 135 | .mypy_cache/ 136 | .dmypy.json 137 | dmypy.json 138 | 139 | # Pyre type checker 140 | .pyre/ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright 2020 ZhangHongYu 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), 6 | to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 | and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 8 | 9 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 12 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 13 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 9 | # Takeaways-Order-Sys 10 | 11 | [](https://github.com/orion-orion/Takeaways-Order-Sys) 12 | [](https://github.com/orion-orion/Takeaways-Order-Sys/LICENSE) 13 | [](https://github.com/orion-orion/Takeaways-Order-Sys) 14 | 15 | 16 | 17 | > 本项目为SWPU数据库原理及应用大作业,在线外卖订餐系统《西柚の外卖屋》, 基于[Flask](https://github.com/pallets/flask)框架+MySQL数据库开发,轻量简洁。 18 | 19 | #### 项目模块及功能介绍 20 | 21 | 本系统包括登录模块、注册模块、商家用户模块、买家用户模块、系统管理员模块。具体功能介绍如下: 22 | 23 | + 登录模块 24 | - [x] 选择管理员、商家用户、用户三种身份登录 25 | - [x] 将输入的用户名与密码与数据库中的数据进行对比验证 26 | 27 | + 注册模块 28 | - [x] 选择商家用户、用户两种身份注册 29 | - [x] 将注册信息(用户名、密码、电话、地址)存入数据库 30 | 31 | + 商家用户模块 32 | - [x] 维护商家个人信息(店名、地址、联系电话、商家图片) 33 | - [x] 修改商家个人登录密码 34 | - [x] 维护菜单列表(菜品名称、菜品描述、营养成分、销量、价格、菜品图片、是否为招牌菜),包括添加、删除、修改 35 | - [x] 对菜品列表按照销量或价格排序查看 36 | - [x] 查看顾客订单与完成情况 37 | - [x] 对顾客订单按照时间或价格排序查看 38 | - [x] 查看顾客对商家当前菜品的评论(订单号、顾客用户名、餐厅名、是否完成、花费、评分、评语、交易时间) 39 | 40 | + 买家用户模块 41 | - [x] 维护买家用户个人信息(用户名、地址、联系电话) 42 | - [x] 修改用户个人登录密码 43 | - [x] 查看商家列表(店名、地址、联系电话、商家图片) 44 | - [x] 查看商家菜单列表(菜品名称、菜品描述、营养成分、销量、价格、菜品图片、是否为招牌菜) 45 | - [x] 对菜单列表按销量或价格排序查看 46 | - [x] 筛选出菜单列表中的特色菜 47 | - [x] 将菜品加入购物车 48 | - [x] 维护购物车,包括选择、删除、搜索、修改数量 49 | - [x] 对购物车进行结算,结算时商品价格可促销打折,可选择堂食或外卖两种就餐方式 50 | - [x] 查看商家评价信息 51 | - [x] 查看以完成订单 52 | - [x] 对当前订单按时间或价格排序查看 53 | - [x] 查看已发表评价(订单号、顾客用户名、餐厅名、是否完成、花费、评分、评语、交易时间) 54 | - [x] 查看可发表评价的订单 55 | - [x] 对可发表评价的订单按交易时间或价格排序查看 56 | 57 | + 系统管理员模块 58 | - [x] 查看各商家获得的评价信息 59 | - [x] 对各商家获得的评价信息按照评分升序查看 60 | - [x] 移除恶意营销商家 61 | 62 | #### 项目结构 63 | ├── screen_shot //项目测试截图 64 | ├── static //网页静态资源 65 | │ ├── css //css样式配置 66 | │ ├── fonts //字体配置 67 | │ ├── images //图片文件 68 | │ ├── js //javascript脚本文件 69 | ├── templates //基于jinja2编写的HTML模板文件 70 | ├── app.py //Web服务启动程序 71 | └── README.md //help 72 | 73 | #### 环境依赖 74 | 75 | + Python 3.9.10 76 | + Flask 2.1.1 77 | + PyMySQL 1.0.2 78 | + MySQL 8.0.28 79 | 80 | #### 运行方法 81 | 先以MySQL的root身份执行SQL脚本初始化数据库与数据表项(会提示输入root用户的登录密码) 82 | ~~~shell 83 | mysql -uroot -p < init.sql 84 | ~~~ 85 | 再执行Web服务启动程序 86 | ~~~python 87 | 88 | python app.py --mysql_pwd 11235813 --db_name appDB 89 | ~~~ 90 | 注意此处`mysql_pwd`也是你MySQL的root用户登录密码,`db_name`即你用`init.sql`创建的数据库名称。 91 | #### 系统部分界面展示 92 | 93 | + 首页 94 | 95 |  96 | 97 | + 注册界面 98 | 99 |  100 | 101 | + 登录界面 102 | 103 |  104 | 105 | + 商家主界面 106 | 107 |  108 | 109 | + 商家菜单界面 110 | 111 |  112 | 113 | + 商家添加菜品界面 114 | 115 |  116 | 117 | + 商家修改菜品界面 118 | 119 |  120 | 121 | + 商家个人中心 122 | 123 |  124 | 125 | + 商家个人信息修改界面 126 | 127 |  128 | 129 | + 商家密码修改界面 130 | 131 |  132 | 133 | + 买家主界面 134 | 135 |  136 | 137 | + 买家菜单界面 138 | 139 |  140 | 141 | + 买家购物车界面 142 | 143 |  144 | 145 | + 买家个人中心 146 | 147 |  148 | 149 | + 买家个人信息修改界面 150 | 151 |  152 | 153 | + 买家密码修改界面 154 | 155 |  156 | 157 | + 管理员主界面 158 | 159 |  160 | -------------------------------------------------------------------------------- /init.sql: -------------------------------------------------------------------------------- 1 | CREATE DATABASE appDB; 2 | USE appDB; 3 | CREATE TABLE `ADMIN`( 4 | `username` CHAR(15) PRIMARY KEY, 5 | `password` CHAR(12) NOT NULL 6 | )ENGINE=InnoDB DEFAULT CHARSET=utf8; 7 | INSERT INTO `ADMIN` VALUES 8 | ('root','12345678'); 9 | SELECT* FROM ADMIN; 10 | 11 | CREATE TABLE `CUSTOMER`( 12 | `username` CHAR(15) PRIMARY KEY, 13 | `password` CHAR(12) NOT NULL, 14 | `address` VARCHAR(30) NOT NULL, 15 | `phone` CHAR(15) NOT NULL 16 | )ENGINE=InnoDB DEFAULT CHARSET=utf8; 17 | INSERT INTO `CUSTOMER` VALUES 18 | ('lonelyprince7','77777777','西南石油大学学生宿舍10-222','13844444444'), 19 | ('小张','55555555','西南石油大学学生宿舍17-555','18833344444'); 20 | SELECT* FROM CUSTOMER; 21 | 22 | CREATE TABLE `RESTAURANT`( 23 | `username` CHAR(15) PRIMARY KEY, 24 | `password` CHAR(12) NOT NULL, 25 | `address` VARCHAR(30) NOT NULL, 26 | `phone` CHAR(15) NOT NULL, 27 | `img_res` VARCHAR(50) 28 | )ENGINE=InnoDB DEFAULT CHARSET=utf8; 29 | INSERT INTO `RESTAURANT` VALUES 30 | ('土风土味','77777777','四川省成都市新都区正因村128号','1314074','static/images/res_2.jpg'), 31 | ('统一面馆','88888888','四川省成都市新都区正熊猫大道69号','1884801','static/images/res_1.jpg'); 32 | SELECT* FROM RESTAURANT; 33 | 34 | CREATE TABLE `DISHES`( 35 | `dishname` CHAR(15) PRIMARY KEY, 36 | `restaurant` CHAR(15) NOT NULL, 37 | `dishinfo` VARCHAR(50) , 38 | `nutriention` VARCHAR(30), 39 | `price` DECIMAL(5,2) NOT NULL, 40 | `sales` INT(5) NOT NULL, 41 | `imgsrc` VARCHAR(50), 42 | `isSpecialty` BOOLEAN, 43 | FOREIGN KEY (restaurant) 44 | REFERENCES RESTAURANT(username) 45 | )ENGINE=InnoDB DEFAULT CHARSET=utf8; 46 | INSERT INTO DISHES VALUES 47 | ('水煮鱼', '土风土味', '松江鲈鱼,巨口细鳞,肉质鲜嫩', '蛋白质,维生素', 26.00, 0, 'static/images/img_2.jpg', 0), 48 | ('香锅牛肉', '土风土味', '该香锅牛肉味道鲜美,有土豆藕片等蔬菜可添加', '蛋白质,维生素', 14.50, 0, 'static/images/img_5.jpg', 1), 49 | ('牛肉面', '统一面馆', '老坛酸菜牛肉面,麻辣酸爽,美味享受', '蛋白质,淀粉,维生素', 13.00, 1, 'static/images/img_7.jpg', 0); 50 | SELECT* FROM DISHES; 51 | 52 | CREATE TABLE `SHOPPINGCART`( 53 | `username` CHAR(15), 54 | `restaurant` CHAR(15), 55 | `dishname` CHAR(15), 56 | `price` DECIMAL(5,2) NOT NULL, 57 | `img_res` VARCHAR(50), 58 | FOREIGN KEY (username) 59 | REFERENCES CUSTOMER(username), 60 | FOREIGN KEY (restaurant) 61 | REFERENCES RESTAURANT(username), 62 | FOREIGN KEY (dishname) 63 | REFERENCES DISHES(dishname), 64 | PRIMARY KEY (username,restaurant,dishname) 65 | )ENGINE=InnoDB DEFAULT CHARSET=utf8; 66 | INSERT INTO `SHOPPINGCART` VALUES 67 | ('lonelyprince7','土风土味','水煮鱼',26.00,'static/images/img_2.jpg'); 68 | SELECT* FROM SHOPPINGCART; 69 | 70 | CREATE TABLE `ORDER_COMMENT`( 71 | `orderID` CHAR(15) PRIMARY KEY, 72 | `username` CHAR(15) NOT NULL, 73 | `restaurant` VARCHAR(15) NOT NULL, 74 | `isFinished` BOOLEAN, 75 | CHECK(isFinished=1 or isFinished =0), 76 | `cost` DECIMAL(5,2) NOT NULL, 77 | `c_rank` TINYINT(1), 78 | CHECK(c_rank BETWEEN 1 AND 5), 79 | `text` VARCHAR(50), 80 | `transactiontime` TIMESTAMP(0) NOT NULL, 81 | CHECK(transactiontime BETWEEN '1970-01-01 00:00:01' AND '2038-01-19 03:14:07'), 82 | FOREIGN KEY (username) 83 | REFERENCES CUSTOMER(username), 84 | FOREIGN KEY (restaurant) 85 | REFERENCES RESTAURANT(username) 86 | )ENGINE=InnoDB DEFAULT CHARSET=utf8; 87 | 88 | INSERT INTO ORDER_COMMENT VALUES 89 | ('1444000', 'lonelyprince7', '土风土味', 1, 26.00, 1, '鱼肉非常不新鲜,不推荐', '2020-11-7 13:14:07'), 90 | ('1445000', 'lonelyprince7', '土风土味', 1, 14.50, 3, '牛肉太少,蔬菜太多,希望下次多放点牛肉', '2020-10-13 20:29:13'), 91 | ('1446000', '小张', '统一面馆', 0, 13.00, 5, '分量足,味道好,推荐', '2020-10-27 15:45:21'); 92 | SELECT* FROM ORDER_COMMENT; -------------------------------------------------------------------------------- /screen_shoot/买家个人中心.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/screen_shoot/买家个人中心.jpg -------------------------------------------------------------------------------- /screen_shoot/买家个人信息修改界面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/screen_shoot/买家个人信息修改界面.jpg -------------------------------------------------------------------------------- /screen_shoot/买家主界面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/screen_shoot/买家主界面.jpg -------------------------------------------------------------------------------- /screen_shoot/买家密码修改界面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/screen_shoot/买家密码修改界面.jpg -------------------------------------------------------------------------------- /screen_shoot/买家菜单界面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/screen_shoot/买家菜单界面.jpg -------------------------------------------------------------------------------- /screen_shoot/买家购物车界面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/screen_shoot/买家购物车界面.jpg -------------------------------------------------------------------------------- /screen_shoot/商家个人中心.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/screen_shoot/商家个人中心.jpg -------------------------------------------------------------------------------- /screen_shoot/商家个人信息修改界面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/screen_shoot/商家个人信息修改界面.jpg -------------------------------------------------------------------------------- /screen_shoot/商家主界面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/screen_shoot/商家主界面.jpg -------------------------------------------------------------------------------- /screen_shoot/商家修改菜品界面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/screen_shoot/商家修改菜品界面.jpg -------------------------------------------------------------------------------- /screen_shoot/商家密码修改界面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/screen_shoot/商家密码修改界面.jpg -------------------------------------------------------------------------------- /screen_shoot/商家添加菜品界面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/screen_shoot/商家添加菜品界面.jpg -------------------------------------------------------------------------------- /screen_shoot/商家菜单界面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/screen_shoot/商家菜单界面.jpg -------------------------------------------------------------------------------- /screen_shoot/注册界面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/screen_shoot/注册界面.jpg -------------------------------------------------------------------------------- /screen_shoot/登录界面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/screen_shoot/登录界面.jpg -------------------------------------------------------------------------------- /screen_shoot/管理员主界面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/screen_shoot/管理员主界面.jpg -------------------------------------------------------------------------------- /screen_shoot/首页.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/screen_shoot/首页.jpg -------------------------------------------------------------------------------- /static/css/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/css/.DS_Store -------------------------------------------------------------------------------- /static/css/OrderPage.css: -------------------------------------------------------------------------------- 1 | .fh5co-card-item .fh5co-text { 2 | padding: 0px 10px 10px 20px; 3 | text-align: center; 4 | position: relative; 5 | z-index: 22; 6 | } 7 | .fh5co-card-item .fh5co-text:before { 8 | /* position: absolute; 9 | top: -40px; 10 | right: 0; 11 | left: 0; 12 | width: 103%; 13 | margin-left: -4px; 14 | height: 50px; 15 | z-index: -1; 16 | content: ""; 17 | background: #fff; 18 | -webkit-transform: rotate(4deg); 19 | -moz-transform: rotate(4deg); 20 | -ms-transform: rotate(4deg); 21 | -o-transform: rotate(4deg); 22 | transform: rotate(4deg); */ 23 | text-align: center; 24 | } 25 | .gtco-container form input { 26 | color: white; 27 | font-size: 16px; 28 | outline:none; 29 | border:0px; 30 | background-color: #FBB448; 31 | border-radius: 10%; 32 | } 33 | .selectcondition { 34 | float: left; 35 | } -------------------------------------------------------------------------------- /static/css/cartstyle.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | *{margin:0; 3 | padding:0; 4 | list-style-type:none;} 5 | 6 | a 7 | {color:#666; 8 | text-decoration:none;} 9 | 10 | table 11 | {border-collapse:collapse; 12 | border-spacing:0; 13 | border:0;} 14 | 15 | body 16 | {color:#666; 17 | font:12px/180% Arial, Helvetica, sans-serif, "新宋体";} 18 | 19 | clearfix:after 20 | {content:"."; 21 | display:block; 22 | height:0; 23 | clear:both; 24 | visibility:hidden} 25 | 26 | .clearfix 27 | {display:inline-table} 28 | 29 | *html .clearfix 30 | {height:1%} 31 | 32 | .clearfix 33 | {display:block} 34 | 35 | *+html .clearfix 36 | {min-height:1%} 37 | 38 | .fl 39 | {float:left;} 40 | 41 | .fr 42 | {float:right;} 43 | /*素材家园 - www.sucaijiayuan.com*/ 44 | .catbox 45 | {width:940px; 46 | margin:100px auto;} 47 | 48 | .catbox table 49 | {text-align:center; 50 | width:100%;} 51 | 52 | .catbox table th,.catbox table td 53 | {border:1px solid #CADEFF;} 54 | 55 | .catbox table th 56 | {background:#e2f2ff; 57 | border-top:3px solid #a7cbff; 58 | height:30px;} 59 | 60 | .catbox table td 61 | {padding:10px; 62 | color:#444;} 63 | 64 | .catbox table tbody tr:hover 65 | {background:RGB(238,246,255);} 66 | 67 | .checkbox 68 | {width:60px;} 69 | 70 | .check-all 71 | { vertical-align:middle;} 72 | 73 | .goods 74 | {width:300px;} 75 | 76 | .goods span 77 | {width:180px; 78 | margin-top:20px; 79 | text-align:left; 80 | float:left;} 81 | 82 | .goods img 83 | {width:100px; 84 | height:80px; 85 | margin-right:10px; 86 | float:left;} 87 | 88 | .price 89 | {width:130px;} 90 | 91 | .count 92 | {width:30px;} 93 | 94 | .count .add, .count input, .count .reduce 95 | {float:left; 96 | margin-right:-1px; 97 | position:relative; 98 | z-index:0;} 99 | 100 | .count .add, .count .reduce 101 | {height:23px; 102 | width:17px; 103 | border:1px solid #e5e5e5; 104 | background:#f0f0f0; 105 | text-align:center; 106 | line-height:23px; 107 | color:#444;} 108 | 109 | .count .add:hover, .count .reduce:hover{color:#f50;z-index:3;border-color:#f60;cursor:pointer;} 110 | .count input{width:50px;height:15px;line-height:15px;border:1px solid #aaa;color:#343434;text-align:center;padding:4px 0;background-color:#fff;z-index:2;} 111 | .subtotal{width:150px;color:red;font-weight:bold;} 112 | .operation span:hover,a:hover{cursor:pointer;color:red;text-decoration:underline;} 113 | 114 | .foot{margin-top:0px;color:#666;height:48px;border:1px solid #c8c8c8;border-top:0;background-color:#eaeaea;background-image:linear-gradient(RGB(241,241,241),RGB(226,226,226));position:relative;z-index:8;} 115 | .foot div, .foot a{line-height:48px;height:48px;} 116 | .foot .select-all{width:80px;height:48px;line-height:48px;color:#666;text-align:center;} 117 | .foot .delete{padding-left:10px;} 118 | .foot .closing{border-left:1px solid #c8c8c8;width:103px;text-align:center;color:#666;font-weight:bold;cursor:pointer;background-image:linear-gradient(RGB(241,241,241),RGB(226,226,226));} 119 | .foot .closing:hover{background-image:linear-gradient(RGB(226,226,226),RGB(241,241,241));color:#333;} 120 | .foot .total{margin:0 20px;cursor:pointer;} 121 | .foot #priceTotal, .foot #selectedTotal{color:red;font-family:"Microsoft Yahei";font-weight:bold;} 122 | .foot .selected{cursor:pointer;} 123 | .foot .selected .arrow{position:relative;top:-3px;margin-left:3px;} 124 | .foot .selected .down{position:relative;top:3px;display:none;} 125 | .show .selected .down{display:inline;} 126 | .show .selected .up{display:none;} 127 | .foot .selected:hover .arrow{color:red;} 128 | .foot .selected-view{width:938px;border:1px solid #c8c8c8;position:absolute;height:auto;background:#ffffff;z-index:9;bottom:48px;left:-1px;display:none;} 129 | .show .selected-view{display:block;} 130 | .foot .selected-view div{height:auto;} 131 | .foot .selected-view .arrow{font-size:16px;line-height:100%;color:#c8c8c8;position:absolute;right:330px;bottom:-9px;} 132 | .foot .selected-view .arrow span{color:#ffffff;position:absolute;left:0px;bottom:1px;} 133 | 134 | #selectedViewList 135 | {padding:10px 20px 10px 20px;} 136 | 137 | #selectedViewList div 138 | {display:inline-block; 139 | position:relative; 140 | width:100px; 141 | height:80px; 142 | border:1px solid #ccc; 143 | margin:10px; 144 | float:left;} 145 | 146 | #selectedViewList div img{width:100px;height:80px;margin-right:10px;float:left;} 147 | #selectedViewList div span{display:none;color:#ffffff;font-size:12px;position:absolute;top:0px;right:0px;width:60px;height:18px;line-height:18px;text-align:center;background:#000;cursor:pointer;} 148 | #selectedViewList div:hover span{display:block;} -------------------------------------------------------------------------------- /static/css/owl.carousel.min.css: -------------------------------------------------------------------------------- 1 | .owl-carousel .animated{-webkit-animation-duration:1000ms;animation-duration:1000ms;-webkit-animation-fill-mode:both;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{-webkit-transition:height 500ms ease-in-out;-moz-transition:height 500ms ease-in-out;-ms-transition:height 500ms ease-in-out;-o-transition:height 500ms ease-in-out;transition:height 500ms ease-in-out}.owl-carousel{display:none;width:100%;-webkit-tap-highlight-color:transparent;position:relative;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0px,0,0)}.owl-carousel .owl-controls .owl-dot,.owl-carousel .owl-controls .owl-nav .owl-next,.owl-carousel .owl-controls .owl-nav .owl-prev{cursor:pointer;cursor:hand;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-loaded{display:block}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel .owl-refresh .owl-item{display:none}.owl-carousel .owl-item{position:relative;min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel .owl-item img{display:block;width:100%;-webkit-transform-style:preserve-3d}.owl-carousel.owl-text-select-on .owl-item{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.owl-carousel .owl-grab{cursor:move;cursor:-webkit-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.no-js .owl-carousel{display:block}.owl-carousel .owl-item .owl-lazy{opacity:0;-webkit-transition:opacity 400ms ease;-moz-transition:opacity 400ms ease;-ms-transition:opacity 400ms ease;-o-transition:opacity 400ms ease;transition:opacity 400ms ease}.owl-carousel .owl-item img{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;-webkit-transition:scale 100ms ease;-moz-transition:scale 100ms ease;-ms-transition:scale 100ms ease;-o-transition:scale 100ms ease;transition:scale 100ms ease}.owl-carousel .owl-video-play-icon:hover{-webkit-transition:scale(1.3,1.3);-moz-transition:scale(1.3,1.3);-ms-transition:scale(1.3,1.3);-o-transition:scale(1.3,1.3);transition:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;-webkit-background-size:contain;-moz-background-size:contain;-o-background-size:contain;background-size:contain;-webkit-transition:opacity 400ms ease;-moz-transition:opacity 400ms ease;-ms-transition:opacity 400ms ease;-o-transition:opacity 400ms ease;transition:opacity 400ms ease}.owl-carousel .owl-video-frame{position:relative;z-index:1} -------------------------------------------------------------------------------- /static/css/owl.theme.default.min.css: -------------------------------------------------------------------------------- 1 | .owl-theme .owl-controls{margin-top:10px;text-align:center;-webkit-tap-highlight-color:transparent}.owl-theme .owl-controls .owl-nav [class*=owl-]{color:#fff;font-size:14px;margin:5px;padding:4px 7px;background:#d6d6d6;display:inline-block;cursor:pointer;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.owl-theme .owl-controls .owl-nav [class*=owl-]:hover{background:#869791;color:#fff;text-decoration:none}.owl-theme .owl-controls .owl-nav .disabled{opacity:.5;cursor:default}.owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1;*display:inline}.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#d6d6d6;display:block;-webkit-backface-visibility:visible;-webkit-transition:opacity 200ms ease;-moz-transition:opacity 200ms ease;-ms-transition:opacity 200ms ease;-o-transition:opacity 200ms ease;transition:opacity 200ms ease;-webkit-border-radius:30px;-moz-border-radius:30px;border-radius:30px}.owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#869791} -------------------------------------------------------------------------------- /static/css/personal.css: -------------------------------------------------------------------------------- 1 | /* .listbkg { 2 | width: 100%; 3 | height: auto; 4 | background-color: #FBB448; 5 | } */ 6 | /* .navbkg { 7 | width: 100%; 8 | height: 69px; 9 | background-color: #000; 10 | } */ 11 | a :hover{ 12 | text-decoration: none; 13 | } -------------------------------------------------------------------------------- /static/css/test.css: -------------------------------------------------------------------------------- 1 | .test { 2 | width: 30px; 3 | height: 30px; 4 | background-color: red; 5 | } -------------------------------------------------------------------------------- /static/fonts/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/fonts/.DS_Store -------------------------------------------------------------------------------- /static/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /static/fonts/bootstrap/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/fonts/bootstrap/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /static/fonts/bootstrap/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/fonts/bootstrap/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /static/fonts/bootstrap/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/fonts/bootstrap/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /static/fonts/bootstrap/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/fonts/bootstrap/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /static/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /static/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /static/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /static/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /static/fonts/icomoon/icomoon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/fonts/icomoon/icomoon.eot -------------------------------------------------------------------------------- /static/fonts/icomoon/icomoon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/fonts/icomoon/icomoon.ttf -------------------------------------------------------------------------------- /static/fonts/icomoon/icomoon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/fonts/icomoon/icomoon.woff -------------------------------------------------------------------------------- /static/fonts/themify-icons/themify.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/fonts/themify-icons/themify.eot -------------------------------------------------------------------------------- /static/fonts/themify-icons/themify.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/fonts/themify-icons/themify.ttf -------------------------------------------------------------------------------- /static/fonts/themify-icons/themify.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/fonts/themify-icons/themify.woff -------------------------------------------------------------------------------- /static/images/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/images/.DS_Store -------------------------------------------------------------------------------- /static/images/Slider.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/images/Slider.jpg -------------------------------------------------------------------------------- /static/images/icons-s2205f6ae3b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/images/icons-s2205f6ae3b.png -------------------------------------------------------------------------------- /static/images/img_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/images/img_1.jpg -------------------------------------------------------------------------------- /static/images/img_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/images/img_2.jpg -------------------------------------------------------------------------------- /static/images/img_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/images/img_3.jpg -------------------------------------------------------------------------------- /static/images/img_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/images/img_4.jpg -------------------------------------------------------------------------------- /static/images/img_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/images/img_5.jpg -------------------------------------------------------------------------------- /static/images/img_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/images/img_6.jpg -------------------------------------------------------------------------------- /static/images/img_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/images/img_7.jpg -------------------------------------------------------------------------------- /static/images/img_bg_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/images/img_bg_1.jpg -------------------------------------------------------------------------------- /static/images/img_bg_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/images/img_bg_2.jpg -------------------------------------------------------------------------------- /static/images/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/images/loader.gif -------------------------------------------------------------------------------- /static/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/images/logo.png -------------------------------------------------------------------------------- /static/images/pizza.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/images/pizza.jpg -------------------------------------------------------------------------------- /static/images/res_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/images/res_1.jpg -------------------------------------------------------------------------------- /static/images/res_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/images/res_2.jpg -------------------------------------------------------------------------------- /static/js/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orion-orion/Takeaways-Order-Sys/26fe662e11bf8ed280d56591db5882b6cf48c793/static/js/.DS_Store -------------------------------------------------------------------------------- /static/js/app.js: -------------------------------------------------------------------------------- 1 | /*------------------------------------------------------------------ 2 | Project: Seven - HTML onpage theme 3 | Version: 1.0 4 | Last change: 10/03/2015 5 | Author: GraphBerry 6 | URL: # 7 | License: #/pages/license 8 | -------------------------------------------------------------------*/ 9 | 10 | $(function () { 11 | 'use strict'; 12 | 13 | /*-------------------------------------------------- 14 | WOW Effects Animation 15 | ---------------------------------------------------*/ 16 | 17 | var wow = new WOW({ 18 | boxClass: 'wow', // animated element css class (default is wow) 19 | animateClass: 'animated', // animation css class (default is animated) 20 | offset: 100, // distance to the element when triggering the animation (default is 0) 21 | mobile: false // trigger animations on mobile devices (true is default) 22 | }); 23 | wow.init(); 24 | 25 | /*-------------------------------------------------- 26 | Page Scroll Features 27 | ---------------------------------------------------*/ 28 | smoothScroll.init({ 29 | speed: 1000, 30 | updateURL: true, 31 | offset: 50 32 | }); 33 | 34 | /*-------------------------------------------------- 35 | Menu Features 36 | ---------------------------------------------------*/ 37 | 38 | // Closes the Responsive Menu on Menu Item Click 39 | $('.navbar-collapse ul li a').on('click', function () { 40 | $('.navbar-toggle:visible').trigger('click'); 41 | }); 42 | 43 | /*-------------------------------------------------- 44 | Open video modal 45 | ---------------------------------------------------*/ 46 | 47 | $('#popup-youtube').magnificPopup({ 48 | disableOn: 700, 49 | type: 'iframe', 50 | mainClass: 'mfp-fade', 51 | removalDelay: 160, 52 | preloader: false, 53 | fixedContentPos: false 54 | }); 55 | 56 | /*-------------------------------------------------- 57 | Initialize portfolio filter 58 | ---------------------------------------------------*/ 59 | 60 | $('#filter-controls').mixItUp(); 61 | 62 | 63 | 64 | /*-------------------------------------------------- 65 | Set main image height. 66 | ---------------------------------------------------*/ 67 | 68 | function homeFullScreen() { 69 | 70 | var homeSection = $('.slide'); 71 | var windowHeight = $(window).outerHeight(); 72 | 73 | if (homeSection.hasClass('slide-fullscreen')) { 74 | 75 | $('.slide-fullscreen').css('height', windowHeight); 76 | } 77 | } 78 | 79 | homeFullScreen(); 80 | 81 | //What happen on window resize 82 | $(window).resize(function () { 83 | homeFullScreen(); 84 | }); 85 | 86 | 87 | function stickyMenu() { 88 | 89 | var scrollTop = $(window).scrollTop(); 90 | var offset = 0; 91 | 92 | if (scrollTop > offset) { 93 | $('.navbar-default').addClass('navbar-small'); 94 | } else { 95 | $('.navbar-default').removeClass('navbar-small'); 96 | } 97 | } 98 | 99 | //What happen on window scroll 100 | $(window).on("scroll", function (e) { 101 | setTimeout(function () { 102 | stickyMenu(); 103 | }, 300) 104 | }); 105 | 106 | }); -------------------------------------------------------------------------------- /static/js/google_map.js: -------------------------------------------------------------------------------- 1 | 2 | var google; 3 | 4 | function init() { 5 | // Basic options for a simple Google Map 6 | // For more options see: https://developers.google.com/maps/documentation/javascript/reference#MapOptions 7 | // var myLatlng = new google.maps.LatLng(40.71751, -73.990922); 8 | var myLatlng = new google.maps.LatLng(40.69847032728747, -73.9514422416687); 9 | // 39.399872 10 | // -8.224454 11 | 12 | var mapOptions = { 13 | // How zoomed in you want the map to start at (always required) 14 | zoom: 7, 15 | 16 | // The latitude and longitude to center the map (always required) 17 | center: myLatlng, 18 | 19 | // How you would like to style the map. 20 | scrollwheel: false, 21 | styles: [{"featureType":"administrative.land_parcel","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"landscape.man_made","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"poi","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"labels","stylers":[{"visibility":"simplified"},{"lightness":20}]},{"featureType":"road.highway","elementType":"geometry","stylers":[{"hue":"#f49935"}]},{"featureType":"road.highway","elementType":"labels","stylers":[{"visibility":"simplified"}]},{"featureType":"road.arterial","elementType":"geometry","stylers":[{"hue":"#fad959"}]},{"featureType":"road.arterial","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"road.local","elementType":"geometry","stylers":[{"visibility":"simplified"}]},{"featureType":"road.local","elementType":"labels","stylers":[{"visibility":"simplified"}]},{"featureType":"transit","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"water","elementType":"all","stylers":[{"hue":"#a1cdfc"},{"saturation":30},{"lightness":49}]}] 22 | }; 23 | 24 | 25 | 26 | // Get the HTML DOM element that will contain your map 27 | // We are using a div with id="map" seen below in the
28 | var mapElement = document.getElementById('map'); 29 | 30 | // Create the Google Map using out element and options defined above 31 | var map = new google.maps.Map(mapElement, mapOptions); 32 | 33 | var addresses = ['Brooklyn']; 34 | 35 | for (var x = 0; x < addresses.length; x++) { 36 | $.getJSON('http://maps.googleapis.com/maps/api/geocode/json?address='+addresses[x]+'&sensor=false', null, function (data) { 37 | var p = data.results[0].geometry.location 38 | var latlng = new google.maps.LatLng(p.lat, p.lng); 39 | new google.maps.Marker({ 40 | position: latlng, 41 | map: map, 42 | icon: 'images/loc.png' 43 | }); 44 | 45 | }); 46 | } 47 | 48 | } 49 | google.maps.event.addDomListener(window, 'load', init); -------------------------------------------------------------------------------- /static/js/jquery.countTo.js: -------------------------------------------------------------------------------- 1 | (function (factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | // AMD 4 | define(['jquery'], factory); 5 | } else if (typeof exports === 'object') { 6 | // CommonJS 7 | factory(require('jquery')); 8 | } else { 9 | // Browser globals 10 | factory(jQuery); 11 | } 12 | }(function ($) { 13 | var CountTo = function (element, options) { 14 | this.$element = $(element); 15 | this.options = $.extend({}, CountTo.DEFAULTS, this.dataOptions(), options); 16 | this.init(); 17 | }; 18 | 19 | CountTo.DEFAULTS = { 20 | from: 0, // the number the element should start at 21 | to: 0, // the number the element should end at 22 | speed: 1000, // how long it should take to count between the target numbers 23 | refreshInterval: 100, // how often the element should be updated 24 | decimals: 0, // the number of decimal places to show 25 | formatter: formatter, // handler for formatting the value before rendering 26 | onUpdate: null, // callback method for every time the element is updated 27 | onComplete: null // callback method for when the element finishes updating 28 | }; 29 | 30 | CountTo.prototype.init = function () { 31 | this.value = this.options.from; 32 | this.loops = Math.ceil(this.options.speed / this.options.refreshInterval); 33 | this.loopCount = 0; 34 | this.increment = (this.options.to - this.options.from) / this.loops; 35 | }; 36 | 37 | CountTo.prototype.dataOptions = function () { 38 | var options = { 39 | from: this.$element.data('from'), 40 | to: this.$element.data('to'), 41 | speed: this.$element.data('speed'), 42 | refreshInterval: this.$element.data('refresh-interval'), 43 | decimals: this.$element.data('decimals') 44 | }; 45 | 46 | var keys = Object.keys(options); 47 | 48 | for (var i in keys) { 49 | var key = keys[i]; 50 | 51 | if (typeof(options[key]) === 'undefined') { 52 | delete options[key]; 53 | } 54 | } 55 | 56 | return options; 57 | }; 58 | 59 | CountTo.prototype.update = function () { 60 | this.value += this.increment; 61 | this.loopCount++; 62 | 63 | this.render(); 64 | 65 | if (typeof(this.options.onUpdate) == 'function') { 66 | this.options.onUpdate.call(this.$element, this.value); 67 | } 68 | 69 | if (this.loopCount >= this.loops) { 70 | clearInterval(this.interval); 71 | this.value = this.options.to; 72 | 73 | if (typeof(this.options.onComplete) == 'function') { 74 | this.options.onComplete.call(this.$element, this.value); 75 | } 76 | } 77 | }; 78 | 79 | CountTo.prototype.render = function () { 80 | var formattedValue = this.options.formatter.call(this.$element, this.value, this.options); 81 | this.$element.text(formattedValue); 82 | }; 83 | 84 | CountTo.prototype.restart = function () { 85 | this.stop(); 86 | this.init(); 87 | this.start(); 88 | }; 89 | 90 | CountTo.prototype.start = function () { 91 | this.stop(); 92 | this.render(); 93 | this.interval = setInterval(this.update.bind(this), this.options.refreshInterval); 94 | }; 95 | 96 | CountTo.prototype.stop = function () { 97 | if (this.interval) { 98 | clearInterval(this.interval); 99 | } 100 | }; 101 | 102 | CountTo.prototype.toggle = function () { 103 | if (this.interval) { 104 | this.stop(); 105 | } else { 106 | this.start(); 107 | } 108 | }; 109 | 110 | function formatter(value, options) { 111 | return value.toFixed(options.decimals); 112 | } 113 | 114 | $.fn.countTo = function (option) { 115 | return this.each(function () { 116 | var $this = $(this); 117 | var data = $this.data('countTo'); 118 | var init = !data || typeof(option) === 'object'; 119 | var options = typeof(option) === 'object' ? option : {}; 120 | var method = typeof(option) === 'string' ? option : 'start'; 121 | 122 | if (init) { 123 | if (data) data.stop(); 124 | $this.data('countTo', data = new CountTo(this, options)); 125 | } 126 | 127 | data[method].call(data); 128 | }); 129 | }; 130 | })); -------------------------------------------------------------------------------- /static/js/magnific-popup-options.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | // MagnificPopup 3 | var magnifPopup = function() { 4 | $('.image-popup').magnificPopup({ 5 | type: 'image', 6 | removalDelay: 300, 7 | mainClass: 'mfp-with-zoom', 8 | gallery:{ 9 | enabled:true 10 | }, 11 | zoom: { 12 | enabled: true, // By default it's false, so don't forget to enable it 13 | 14 | duration: 300, // duration of the effect, in milliseconds 15 | easing: 'ease-in-out', // CSS transition easing function 16 | 17 | // The "opener" function should return the element from which popup will be zoomed in 18 | // and to which popup will be scaled down 19 | // By defailt it looks for an image tag: 20 | opener: function(openerElement) { 21 | // openerElement is the element on which popup was initialized, in this case its tag 22 | // you don't need to add "opener" option if this code matches your needs, it's defailt one. 23 | return openerElement.is('img') ? openerElement : openerElement.find('img'); 24 | } 25 | } 26 | }); 27 | }; 28 | 29 | var magnifVideo = function() { 30 | $('.popup-youtube, .popup-vimeo, .popup-gmaps').magnificPopup({ 31 | disableOn: 700, 32 | type: 'iframe', 33 | mainClass: 'mfp-fade', 34 | removalDelay: 160, 35 | preloader: false, 36 | 37 | fixedContentPos: false 38 | }); 39 | }; 40 | 41 | 42 | 43 | 44 | // Call the functions 45 | magnifPopup(); 46 | magnifVideo(); 47 | 48 | }); -------------------------------------------------------------------------------- /static/js/respond.min.js: -------------------------------------------------------------------------------- 1 | 2 | /*! Respond.js v1.4.2: min/max-width media query polyfill * Copyright 2013 Scott Jehl 3 | * Licensed under https://github.com/scottjehl/Respond/blob/master/LICENSE-MIT 4 | * */ 5 | 6 | !function(a){"use strict";a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){u(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))};if(c.ajax=f,c.queue=d,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var g,h,i,j=a.document,k=j.documentElement,l=[],m=[],n=[],o={},p=30,q=j.getElementsByTagName("head")[0]||k,r=j.getElementsByTagName("base")[0],s=q.getElementsByTagName("link"),t=function(){var a,b=j.createElement("div"),c=j.body,d=k.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=j.createElement("body"),c.style.background="none"),k.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&k.insertBefore(c,k.firstChild),a=b.offsetWidth,f?k.removeChild(c):c.removeChild(b),k.style.fontSize=d,e&&(c.style.fontSize=e),a=i=parseFloat(a)},u=function(b){var c="clientWidth",d=k[c],e="CSS1Compat"===j.compatMode&&d||j.body[c]||d,f={},o=s[s.length-1],r=(new Date).getTime();if(b&&g&&p>r-g)return a.clearTimeout(h),h=a.setTimeout(u,p),void 0;g=r;for(var v in l)if(l.hasOwnProperty(v)){var w=l[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?i||t():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?i||t():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(m[w.rules]))}for(var C in n)n.hasOwnProperty(C)&&n[C]&&n[C].parentNode===q&&q.removeChild(n[C]);n.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=j.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,q.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(j.createTextNode(F)),n.push(E)}},v=function(a,b,d){var e=a.replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var g=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},h=!f&&d;b.length&&(b+="/"),h&&(f=1);for(var i=0;f>i;i++){var j,k,n,o;h?(j=d,m.push(g(a))):(j=e[i].match(c.regex.findStyles)&&RegExp.$1,m.push(RegExp.$2&&g(RegExp.$2))),n=j.split(","),o=n.length;for(var p=0;o>p;p++)k=n[p],l.push({media:k.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:m.length-1,hasquery:k.indexOf("(")>-1,minw:k.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:k.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},w=function(){if(d.length){var b=d.shift();f(b.href,function(c){v(c,b.href,b.media),o[b.href]=!0,a.setTimeout(function(){w()},0)})}},x=function(){for(var b=0;b