├── .idea ├── .name ├── dictionaries │ └── yi.xml ├── watcherTasks.xml ├── encodings.xml ├── vcs.xml ├── jsLibraryMappings.xml ├── modules.xml ├── eleme.iml └── misc.xml ├── static ├── .gitkeep └── css │ └── reset.css ├── .eslintignore ├── .gitignore ├── config ├── prod.env.js ├── dev.env.js └── index.js ├── resource ├── 外卖01_商品页.jpg ├── 外卖05_评价页.jpg ├── 外卖06_商家页.jpg ├── img │ ├── brand@2x.png │ ├── brand@3x.png │ ├── bulletin@2x.png │ ├── bulletin@3x.png │ ├── decrease_1@2x.png │ ├── decrease_1@3x.png │ ├── decrease_2@2x.png │ ├── decrease_2@3x.png │ ├── decrease_3@2x.png │ ├── decrease_3@3x.png │ ├── decrease_4@2x.png │ ├── decrease_4@3x.png │ ├── discount_1@2x.png │ ├── discount_1@3x.png │ ├── discount_2@2x.png │ ├── discount_2@3x.png │ ├── discount_3@2x.png │ ├── discount_3@3x.png │ ├── discount_4@2x.png │ ├── discount_4@3x.png │ ├── guarantee_1@2x.png │ ├── guarantee_1@3x.png │ ├── guarantee_2@2x.png │ ├── guarantee_2@3x.png │ ├── guarantee_3@2x.png │ ├── guarantee_3@3x.png │ ├── guarantee_4@2x.png │ ├── guarantee_4@3x.png │ ├── invoice_1@2x.png │ ├── invoice_1@3x.png │ ├── invoice_2@2x.png │ ├── invoice_2@3x.png │ ├── invoice_3@2x.png │ ├── invoice_3@3x.png │ ├── invoice_4@2x.png │ ├── invoice_4@3x.png │ ├── special_1@2x.png │ ├── special_1@3x.png │ ├── special_2@2x.png │ ├── special_2@3x.png │ ├── special_3@2x.png │ ├── special_3@3x.png │ ├── special_4@2x.png │ ├── special_4@3x.png │ ├── star24_half@2x.png │ ├── star24_half@3x.png │ ├── star24_off@2x.png │ ├── star24_off@3x.png │ ├── star24_on@2x.png │ ├── star24_on@3x.png │ ├── star36_half@2x.png │ ├── star36_half@3x.png │ ├── star36_off@2x.png │ ├── star36_off@3x.png │ ├── star36_on@2x.png │ ├── star36_on@3x.png │ ├── star48_half@2x.png │ ├── star48_half@3x.png │ ├── star48_off@2x.png │ ├── star48_off@3x.png │ ├── star48_on@2x.png │ └── star48_on@3x.png ├── 外卖03_商品页_购物车详情.jpg ├── 外卖04_商品页面_商品详情.jpg ├── PSD │ ├── 外卖01_商品页_spec.png │ ├── 外卖05_评价页_spec.png │ ├── 外卖06_商家页_spec.png │ ├── 外卖03_商品页_购物车详情_spec.png │ ├── 外卖04_商品页面_商品详情_spec.png │ ├── 外卖02_商品页_公告及优惠信息_spec.png │ ├── 外卖02_商品页_公告及优惠信息.mkm │ ├── 外卖03_商品页_购物车详情.mkm │ ├── 外卖06_商家页.mkm │ ├── 外卖05_评价页.mkm │ └── 外卖04_商品页面_商品详情.mkm ├── 外卖02_商品页_公告及优惠信息.jpg ├── 标注 │ ├── 外卖01_商品页_spec.png │ ├── 外卖05_评价页_spec.png │ ├── 外卖06_商家页_spec.png │ ├── 外卖03_商品页_购物车详情_spec.png │ ├── 外卖04_商品页面_商品详情_spec.png │ └── 外卖02_商品页_公告及优惠信息_spec.png └── SVG │ ├── arrow_lift.svg │ ├── keyboard_arrow_right.svg │ ├── close.svg │ ├── check_circle.svg │ ├── add_circle.svg │ ├── favorite.svg │ └── thumb_down.svg ├── src ├── common │ ├── stylus │ │ ├── index.styl │ │ ├── mixin.styl │ │ ├── base.styl │ │ └── font.styl │ ├── fonts │ │ ├── iconfont.eot │ │ ├── iconfont.ttf │ │ ├── iconfont.woff │ │ └── iconfont.svg │ └── js │ │ ├── util.js │ │ ├── date.js │ │ └── store.js ├── components │ ├── header │ │ ├── brand@2x.png │ │ ├── brand@3x.png │ │ ├── bulletin@2x.png │ │ ├── bulletin@3x.png │ │ ├── invoice_1@2x.png │ │ ├── invoice_1@3x.png │ │ ├── invoice_2@2x.png │ │ ├── invoice_2@3x.png │ │ ├── special_1@2x.png │ │ ├── special_1@3x.png │ │ ├── special_2@2x.png │ │ ├── special_2@3x.png │ │ ├── decrease_1@2x.png │ │ ├── decrease_1@3x.png │ │ ├── decrease_2@2x.png │ │ ├── decrease_2@3x.png │ │ ├── discount_1@2x.png │ │ ├── discount_1@3x.png │ │ ├── discount_2@2x.png │ │ ├── discount_2@3x.png │ │ ├── guarantee_1@2x.png │ │ ├── guarantee_1@3x.png │ │ ├── guarantee_2@2x.png │ │ ├── guarantee_2@3x.png │ │ ├── header.vue │ │ └── header.styl │ ├── star │ │ ├── star24_on@2x.png │ │ ├── star24_on@3x.png │ │ ├── star36_on@2x.png │ │ ├── star36_on@3x.png │ │ ├── star48_on@2x.png │ │ ├── star48_on@3x.png │ │ ├── star24_half@2x.png │ │ ├── star24_half@3x.png │ │ ├── star24_off@2x.png │ │ ├── star24_off@3x.png │ │ ├── star36_half@2x.png │ │ ├── star36_half@3x.png │ │ ├── star36_off@2x.png │ │ ├── star36_off@3x.png │ │ ├── star48_half@2x.png │ │ ├── star48_half@3x.png │ │ ├── star48_off@2x.png │ │ ├── star48_off@3x.png │ │ ├── star.styl │ │ └── star.vue │ ├── goods │ │ ├── decrease_3@2x.png │ │ ├── decrease_3@3x.png │ │ ├── discount_3@2x.png │ │ ├── discount_3@3x.png │ │ ├── invoice_3@2x.png │ │ ├── invoice_3@3x.png │ │ ├── special_3@2x.png │ │ ├── special_3@3x.png │ │ ├── guarantee_3@2x.png │ │ ├── guarantee_3@3x.png │ │ ├── goods.styl │ │ └── goods.vue │ ├── seller │ │ ├── invoice_4@2x.png │ │ ├── invoice_4@3x.png │ │ ├── special_4@2x.png │ │ ├── special_4@3x.png │ │ ├── decrease_4@2x.png │ │ ├── decrease_4@3x.png │ │ ├── discount_4@2x.png │ │ ├── discount_4@3x.png │ │ ├── guarantee_4@2x.png │ │ ├── guarantee_4@3x.png │ │ ├── seller.styl │ │ └── seller.vue │ ├── split │ │ └── split.vue │ ├── cartControl │ │ ├── cartControl.styl │ │ └── cartControl.vue │ ├── ratingselect │ │ ├── ratingselect.styl │ │ └── ratingselect.vue │ ├── ratings │ │ ├── ratings.styl │ │ └── ratings.vue │ ├── food │ │ ├── food.styl │ │ └── food.vue │ └── shopcart │ │ ├── shopCart.styl │ │ └── shopcart.vue ├── main.js └── App.vue ├── .babelrc ├── .editorconfig ├── index.html ├── .eslintrc.js ├── README.md └── package.json /.idea/.name: -------------------------------------------------------------------------------- 1 | eleme -------------------------------------------------------------------------------- /static/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | build/*.js 2 | config/*.js 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | dist/ 4 | npm-debug.log 5 | -------------------------------------------------------------------------------- /config/prod.env.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | NODE_ENV: '"production"' 3 | } 4 | -------------------------------------------------------------------------------- /resource/外卖01_商品页.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/外卖01_商品页.jpg -------------------------------------------------------------------------------- /resource/外卖05_评价页.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/外卖05_评价页.jpg -------------------------------------------------------------------------------- /resource/外卖06_商家页.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/外卖06_商家页.jpg -------------------------------------------------------------------------------- /resource/img/brand@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/brand@2x.png -------------------------------------------------------------------------------- /resource/img/brand@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/brand@3x.png -------------------------------------------------------------------------------- /src/common/stylus/index.styl: -------------------------------------------------------------------------------- 1 | @import "./mixin.styl" 2 | @import "./base.styl" 3 | @import "./font.styl" 4 | -------------------------------------------------------------------------------- /resource/img/bulletin@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/bulletin@2x.png -------------------------------------------------------------------------------- /resource/img/bulletin@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/bulletin@3x.png -------------------------------------------------------------------------------- /resource/外卖03_商品页_购物车详情.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/外卖03_商品页_购物车详情.jpg -------------------------------------------------------------------------------- /resource/外卖04_商品页面_商品详情.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/外卖04_商品页面_商品详情.jpg -------------------------------------------------------------------------------- /.idea/dictionaries/yi.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /resource/PSD/外卖01_商品页_spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/PSD/外卖01_商品页_spec.png -------------------------------------------------------------------------------- /resource/PSD/外卖05_评价页_spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/PSD/外卖05_评价页_spec.png -------------------------------------------------------------------------------- /resource/PSD/外卖06_商家页_spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/PSD/外卖06_商家页_spec.png -------------------------------------------------------------------------------- /resource/img/decrease_1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/decrease_1@2x.png -------------------------------------------------------------------------------- /resource/img/decrease_1@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/decrease_1@3x.png -------------------------------------------------------------------------------- /resource/img/decrease_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/decrease_2@2x.png -------------------------------------------------------------------------------- /resource/img/decrease_2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/decrease_2@3x.png -------------------------------------------------------------------------------- /resource/img/decrease_3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/decrease_3@2x.png -------------------------------------------------------------------------------- /resource/img/decrease_3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/decrease_3@3x.png -------------------------------------------------------------------------------- /resource/img/decrease_4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/decrease_4@2x.png -------------------------------------------------------------------------------- /resource/img/decrease_4@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/decrease_4@3x.png -------------------------------------------------------------------------------- /resource/img/discount_1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/discount_1@2x.png -------------------------------------------------------------------------------- /resource/img/discount_1@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/discount_1@3x.png -------------------------------------------------------------------------------- /resource/img/discount_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/discount_2@2x.png -------------------------------------------------------------------------------- /resource/img/discount_2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/discount_2@3x.png -------------------------------------------------------------------------------- /resource/img/discount_3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/discount_3@2x.png -------------------------------------------------------------------------------- /resource/img/discount_3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/discount_3@3x.png -------------------------------------------------------------------------------- /resource/img/discount_4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/discount_4@2x.png -------------------------------------------------------------------------------- /resource/img/discount_4@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/discount_4@3x.png -------------------------------------------------------------------------------- /resource/img/guarantee_1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/guarantee_1@2x.png -------------------------------------------------------------------------------- /resource/img/guarantee_1@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/guarantee_1@3x.png -------------------------------------------------------------------------------- /resource/img/guarantee_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/guarantee_2@2x.png -------------------------------------------------------------------------------- /resource/img/guarantee_2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/guarantee_2@3x.png -------------------------------------------------------------------------------- /resource/img/guarantee_3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/guarantee_3@2x.png -------------------------------------------------------------------------------- /resource/img/guarantee_3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/guarantee_3@3x.png -------------------------------------------------------------------------------- /resource/img/guarantee_4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/guarantee_4@2x.png -------------------------------------------------------------------------------- /resource/img/guarantee_4@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/guarantee_4@3x.png -------------------------------------------------------------------------------- /resource/img/invoice_1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/invoice_1@2x.png -------------------------------------------------------------------------------- /resource/img/invoice_1@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/invoice_1@3x.png -------------------------------------------------------------------------------- /resource/img/invoice_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/invoice_2@2x.png -------------------------------------------------------------------------------- /resource/img/invoice_2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/invoice_2@3x.png -------------------------------------------------------------------------------- /resource/img/invoice_3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/invoice_3@2x.png -------------------------------------------------------------------------------- /resource/img/invoice_3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/invoice_3@3x.png -------------------------------------------------------------------------------- /resource/img/invoice_4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/invoice_4@2x.png -------------------------------------------------------------------------------- /resource/img/invoice_4@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/invoice_4@3x.png -------------------------------------------------------------------------------- /resource/img/special_1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/special_1@2x.png -------------------------------------------------------------------------------- /resource/img/special_1@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/special_1@3x.png -------------------------------------------------------------------------------- /resource/img/special_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/special_2@2x.png -------------------------------------------------------------------------------- /resource/img/special_2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/special_2@3x.png -------------------------------------------------------------------------------- /resource/img/special_3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/special_3@2x.png -------------------------------------------------------------------------------- /resource/img/special_3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/special_3@3x.png -------------------------------------------------------------------------------- /resource/img/special_4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/special_4@2x.png -------------------------------------------------------------------------------- /resource/img/special_4@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/special_4@3x.png -------------------------------------------------------------------------------- /resource/img/star24_half@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/star24_half@2x.png -------------------------------------------------------------------------------- /resource/img/star24_half@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/star24_half@3x.png -------------------------------------------------------------------------------- /resource/img/star24_off@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/star24_off@2x.png -------------------------------------------------------------------------------- /resource/img/star24_off@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/star24_off@3x.png -------------------------------------------------------------------------------- /resource/img/star24_on@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/star24_on@2x.png -------------------------------------------------------------------------------- /resource/img/star24_on@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/star24_on@3x.png -------------------------------------------------------------------------------- /resource/img/star36_half@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/star36_half@2x.png -------------------------------------------------------------------------------- /resource/img/star36_half@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/star36_half@3x.png -------------------------------------------------------------------------------- /resource/img/star36_off@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/star36_off@2x.png -------------------------------------------------------------------------------- /resource/img/star36_off@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/star36_off@3x.png -------------------------------------------------------------------------------- /resource/img/star36_on@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/star36_on@2x.png -------------------------------------------------------------------------------- /resource/img/star36_on@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/star36_on@3x.png -------------------------------------------------------------------------------- /resource/img/star48_half@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/star48_half@2x.png -------------------------------------------------------------------------------- /resource/img/star48_half@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/star48_half@3x.png -------------------------------------------------------------------------------- /resource/img/star48_off@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/star48_off@2x.png -------------------------------------------------------------------------------- /resource/img/star48_off@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/star48_off@3x.png -------------------------------------------------------------------------------- /resource/img/star48_on@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/star48_on@2x.png -------------------------------------------------------------------------------- /resource/img/star48_on@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/img/star48_on@3x.png -------------------------------------------------------------------------------- /resource/外卖02_商品页_公告及优惠信息.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/外卖02_商品页_公告及优惠信息.jpg -------------------------------------------------------------------------------- /resource/标注/外卖01_商品页_spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/标注/外卖01_商品页_spec.png -------------------------------------------------------------------------------- /resource/标注/外卖05_评价页_spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/标注/外卖05_评价页_spec.png -------------------------------------------------------------------------------- /resource/标注/外卖06_商家页_spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/标注/外卖06_商家页_spec.png -------------------------------------------------------------------------------- /src/common/fonts/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/common/fonts/iconfont.eot -------------------------------------------------------------------------------- /src/common/fonts/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/common/fonts/iconfont.ttf -------------------------------------------------------------------------------- /src/common/fonts/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/common/fonts/iconfont.woff -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015", "stage-2"], 3 | "plugins": ["transform-runtime"], 4 | "comments": false 5 | } 6 | -------------------------------------------------------------------------------- /resource/PSD/外卖03_商品页_购物车详情_spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/PSD/外卖03_商品页_购物车详情_spec.png -------------------------------------------------------------------------------- /resource/PSD/外卖04_商品页面_商品详情_spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/PSD/外卖04_商品页面_商品详情_spec.png -------------------------------------------------------------------------------- /resource/标注/外卖03_商品页_购物车详情_spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/标注/外卖03_商品页_购物车详情_spec.png -------------------------------------------------------------------------------- /resource/标注/外卖04_商品页面_商品详情_spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/标注/外卖04_商品页面_商品详情_spec.png -------------------------------------------------------------------------------- /src/components/header/brand@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/brand@2x.png -------------------------------------------------------------------------------- /src/components/header/brand@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/brand@3x.png -------------------------------------------------------------------------------- /src/components/star/star24_on@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/star/star24_on@2x.png -------------------------------------------------------------------------------- /src/components/star/star24_on@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/star/star24_on@3x.png -------------------------------------------------------------------------------- /src/components/star/star36_on@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/star/star36_on@2x.png -------------------------------------------------------------------------------- /src/components/star/star36_on@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/star/star36_on@3x.png -------------------------------------------------------------------------------- /src/components/star/star48_on@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/star/star48_on@2x.png -------------------------------------------------------------------------------- /src/components/star/star48_on@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/star/star48_on@3x.png -------------------------------------------------------------------------------- /resource/PSD/外卖02_商品页_公告及优惠信息_spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/PSD/外卖02_商品页_公告及优惠信息_spec.png -------------------------------------------------------------------------------- /resource/标注/外卖02_商品页_公告及优惠信息_spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/resource/标注/外卖02_商品页_公告及优惠信息_spec.png -------------------------------------------------------------------------------- /src/components/goods/decrease_3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/goods/decrease_3@2x.png -------------------------------------------------------------------------------- /src/components/goods/decrease_3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/goods/decrease_3@3x.png -------------------------------------------------------------------------------- /src/components/goods/discount_3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/goods/discount_3@2x.png -------------------------------------------------------------------------------- /src/components/goods/discount_3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/goods/discount_3@3x.png -------------------------------------------------------------------------------- /src/components/goods/invoice_3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/goods/invoice_3@2x.png -------------------------------------------------------------------------------- /src/components/goods/invoice_3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/goods/invoice_3@3x.png -------------------------------------------------------------------------------- /src/components/goods/special_3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/goods/special_3@2x.png -------------------------------------------------------------------------------- /src/components/goods/special_3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/goods/special_3@3x.png -------------------------------------------------------------------------------- /src/components/header/bulletin@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/bulletin@2x.png -------------------------------------------------------------------------------- /src/components/header/bulletin@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/bulletin@3x.png -------------------------------------------------------------------------------- /src/components/header/invoice_1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/invoice_1@2x.png -------------------------------------------------------------------------------- /src/components/header/invoice_1@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/invoice_1@3x.png -------------------------------------------------------------------------------- /src/components/header/invoice_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/invoice_2@2x.png -------------------------------------------------------------------------------- /src/components/header/invoice_2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/invoice_2@3x.png -------------------------------------------------------------------------------- /src/components/header/special_1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/special_1@2x.png -------------------------------------------------------------------------------- /src/components/header/special_1@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/special_1@3x.png -------------------------------------------------------------------------------- /src/components/header/special_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/special_2@2x.png -------------------------------------------------------------------------------- /src/components/header/special_2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/special_2@3x.png -------------------------------------------------------------------------------- /src/components/seller/invoice_4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/seller/invoice_4@2x.png -------------------------------------------------------------------------------- /src/components/seller/invoice_4@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/seller/invoice_4@3x.png -------------------------------------------------------------------------------- /src/components/seller/special_4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/seller/special_4@2x.png -------------------------------------------------------------------------------- /src/components/seller/special_4@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/seller/special_4@3x.png -------------------------------------------------------------------------------- /src/components/star/star24_half@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/star/star24_half@2x.png -------------------------------------------------------------------------------- /src/components/star/star24_half@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/star/star24_half@3x.png -------------------------------------------------------------------------------- /src/components/star/star24_off@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/star/star24_off@2x.png -------------------------------------------------------------------------------- /src/components/star/star24_off@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/star/star24_off@3x.png -------------------------------------------------------------------------------- /src/components/star/star36_half@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/star/star36_half@2x.png -------------------------------------------------------------------------------- /src/components/star/star36_half@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/star/star36_half@3x.png -------------------------------------------------------------------------------- /src/components/star/star36_off@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/star/star36_off@2x.png -------------------------------------------------------------------------------- /src/components/star/star36_off@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/star/star36_off@3x.png -------------------------------------------------------------------------------- /src/components/star/star48_half@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/star/star48_half@2x.png -------------------------------------------------------------------------------- /src/components/star/star48_half@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/star/star48_half@3x.png -------------------------------------------------------------------------------- /src/components/star/star48_off@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/star/star48_off@2x.png -------------------------------------------------------------------------------- /src/components/star/star48_off@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/star/star48_off@3x.png -------------------------------------------------------------------------------- /src/components/goods/guarantee_3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/goods/guarantee_3@2x.png -------------------------------------------------------------------------------- /src/components/goods/guarantee_3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/goods/guarantee_3@3x.png -------------------------------------------------------------------------------- /src/components/header/decrease_1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/decrease_1@2x.png -------------------------------------------------------------------------------- /src/components/header/decrease_1@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/decrease_1@3x.png -------------------------------------------------------------------------------- /src/components/header/decrease_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/decrease_2@2x.png -------------------------------------------------------------------------------- /src/components/header/decrease_2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/decrease_2@3x.png -------------------------------------------------------------------------------- /src/components/header/discount_1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/discount_1@2x.png -------------------------------------------------------------------------------- /src/components/header/discount_1@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/discount_1@3x.png -------------------------------------------------------------------------------- /src/components/header/discount_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/discount_2@2x.png -------------------------------------------------------------------------------- /src/components/header/discount_2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/discount_2@3x.png -------------------------------------------------------------------------------- /src/components/header/guarantee_1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/guarantee_1@2x.png -------------------------------------------------------------------------------- /src/components/header/guarantee_1@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/guarantee_1@3x.png -------------------------------------------------------------------------------- /src/components/header/guarantee_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/guarantee_2@2x.png -------------------------------------------------------------------------------- /src/components/header/guarantee_2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/header/guarantee_2@3x.png -------------------------------------------------------------------------------- /src/components/seller/decrease_4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/seller/decrease_4@2x.png -------------------------------------------------------------------------------- /src/components/seller/decrease_4@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/seller/decrease_4@3x.png -------------------------------------------------------------------------------- /src/components/seller/discount_4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/seller/discount_4@2x.png -------------------------------------------------------------------------------- /src/components/seller/discount_4@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/seller/discount_4@3x.png -------------------------------------------------------------------------------- /src/components/seller/guarantee_4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/seller/guarantee_4@2x.png -------------------------------------------------------------------------------- /src/components/seller/guarantee_4@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/waitingmh/eleme-shop/HEAD/src/components/seller/guarantee_4@3x.png -------------------------------------------------------------------------------- /.idea/watcherTasks.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /config/dev.env.js: -------------------------------------------------------------------------------- 1 | var merge = require('webpack-merge') 2 | var prodEnv = require('./prod.env') 3 | 4 | module.exports = merge(prodEnv, { 5 | NODE_ENV: '"development"' 6 | }) 7 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/jsLibraryMappings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/eleme.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/components/split/split.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | 17 | -------------------------------------------------------------------------------- /src/common/stylus/mixin.styl: -------------------------------------------------------------------------------- 1 | border-1px($color) 2 | position : relative 3 | &:after 4 | display: block 5 | position: absolute 6 | left: 0 7 | bottom: 0 8 | border-top 1px solid $color 9 | width: 100% 10 | content: '' 11 | 12 | border-none() 13 | &:after 14 | display: none 15 | 16 | bg-image($url) 17 | background-image url($url + "@2x.png") 18 | @media (-webkit-min-device-pixel-ratio: 3),(min-device-pixel-ratio) 19 | background-image url($url + "@3x.png") 20 | -------------------------------------------------------------------------------- /src/common/js/util.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 解析url参数 3 | * Created by yi on 2016-12-28. 4 | * @return Object {id:12334} 5 | */ 6 | export function urlParse() { 7 | let url = window.location.search; 8 | let obj = {}; 9 | let reg = /[?&][^?&]+=[^?&]]+/g; 10 | let arr = url.match(reg); 11 | // ['?id=123454','&a=b'] 12 | 13 | if (arr) { 14 | arr.forEach((item) => { 15 | let tempArr = item.substring(1).split('='); 16 | let key = tempArr[0]; 17 | let val = tempArr[1]; 18 | obj[key] = val; 19 | }); 20 | } 21 | return {id: 123123}; 22 | }; 23 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | eleme 6 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /resource/SVG/arrow_lift.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/common/stylus/base.styl: -------------------------------------------------------------------------------- 1 | @media (-webkit-min-device-pixel-ratio: 1.5),(min-device-aspect-ratio: 1.5) 2 | .border-1px 3 | &::after 4 | -webkit-transform : scaleY(0.7) 5 | transform : scaleY(0.7) 6 | 7 | @media (-webkit-min-device-pixel-ratio: 2),(min-device-aspect-ratio: 2) 8 | .border-1px 9 | &::after 10 | -webkit-transform : scaleY(0.5) 11 | transform : scaleY(0.5) 12 | 13 | body, html { 14 | 15 | font-weight 200px 16 | background-color 17 | font-family 'PingFang SC','STHertiSC-Light','HelveTica-Light', Arial, sans-serif 18 | } 19 | .clearFix 20 | display inline-block 21 | &:after 22 | display block 23 | content "." 24 | height 0 25 | line-height 0 26 | clear both 27 | visibility hidden 28 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | parser: 'babel-eslint', 4 | parserOptions: { 5 | sourceType: 'module' 6 | }, 7 | // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style 8 | extends: 'standard', 9 | // required to lint *.vue files 10 | plugins: [ 11 | 'html' 12 | ], 13 | // add your custom rules here 14 | 'rules': { 15 | // allow paren-less arrow functions 16 | 'arrow-parens': 0, 17 | // allow async-await 18 | 'generator-star-spacing': 0, 19 | // allow debugger during development 20 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, 21 | 'semi':['error','always'], 22 | 'indent':0, 23 | 'space-before-function-paren': 0 24 | } 25 | }; 26 | -------------------------------------------------------------------------------- /src/common/js/date.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by yi on 2016-12-27. 3 | */ 4 | 5 | export function formatDate(date, fmt) { 6 | if (/(y+)/.test(fmt)) { 7 | fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)); 8 | } 9 | let o = { 10 | 'M+': date.getMonth() + 1, 11 | 'd+': date.getDate(), 12 | 'h+': date.getHours(), 13 | 'm+': date.getMinutes(), 14 | 's+': date.getSeconds() 15 | }; 16 | for (let k in o) { 17 | if (new RegExp(`(${k})`).test(fmt)) { 18 | let str = o[k] + ''; 19 | fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str)); 20 | } 21 | } 22 | return fmt; 23 | } 24 | 25 | function padLeftZero(str) { 26 | return ('00' + str).substr(str.length); 27 | } 28 | -------------------------------------------------------------------------------- /src/common/js/store.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by yi on 2016-12-28. 3 | */ 4 | 5 | export function savaToLocal(id, key, value) { 6 | let seller = window.localStorage.__seller__; 7 | if (!seller) { 8 | seller = {}; 9 | seller[id] = {}; 10 | } else { 11 | seller = JSON.parse(seller); 12 | if (!seller[id]) { 13 | seller[id] = {}; 14 | } 15 | } 16 | seller[id][key] = value; 17 | window.localStorage.__seller__ = JSON.stringify(seller); 18 | } 19 | export function loadFromlLocal(id, key, def) { 20 | let seller = window.localStorage.__seller__; 21 | if (!seller) { 22 | return def; 23 | } 24 | seller = JSON.parse(seller)[id]; 25 | if (!seller) { 26 | return def; 27 | } 28 | let ret = seller[key]; 29 | return ret || def; 30 | } 31 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | // The Vue build version to load with the `import` command 2 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias. 3 | import Vue from 'vue'; 4 | import VueRouter from 'vue-router'; 5 | import VueResource from 'vue-resource'; 6 | import App from './App'; 7 | import goods from './components/goods/goods.vue'; 8 | import ratings from './components/ratings/ratings.vue'; 9 | import seller from './components/seller/seller.vue'; 10 | import 'common/stylus/index.styl'; 11 | // 安装 "VueRouter"这个插件 12 | /* eslint-disable no-new */ 13 | Vue.use(VueRouter); 14 | Vue.use(VueResource); 15 | let routes = [ 16 | {path: '/', name: 'index', component: App, children: [{path: '/goods', component: goods}, {path: '/ratings', component: ratings}, {path: '/seller', component: seller}]} 17 | ]; 18 | let router = new VueRouter({ 19 | 'linkActiveClass': 'active', 20 | routes // (缩写)相当于 routes: routes 21 | }); 22 | let app = new Vue({ 23 | router 24 | }).$mount('#app'); 25 | router.push('/goods'); 26 | export default app; 27 | -------------------------------------------------------------------------------- /src/components/cartControl/cartControl.styl: -------------------------------------------------------------------------------- 1 | .cartControl 2 | font-size 0 3 | .cart-decrease, .cart-add 4 | display inline-block 5 | padding 4px 6px 6px 6px 6 | &.fade-enter-active, &.fade-leave-active { 7 | transition: all 0.4s linear 8 | } 9 | &.fade-enter, &.fade-leave-active { 10 | opacity: 0 11 | transform translate3d(24px, 0, 0) 12 | } 13 | .inner 14 | display inline-block 15 | line-height 24px 16 | font-size 24px 17 | vertical-align top 18 | color rgb(0, 160, 220, 0.2) 19 | &.inner-enter-active, &.inner-leave-active { 20 | transition: all 0.4s linear 21 | transform: rotate(0) 22 | } 23 | &.inner-enter, &.inner-leave-active { 24 | opacity: 0 25 | transform rotate(180deg) 26 | } 27 | .cart-count 28 | display inline-block 29 | font-size 10px 30 | line-height 24px 31 | width 12px 32 | vertical-align top 33 | padding-top 6px 34 | text-align center 35 | color rgb(147, 153, 159) 36 | .cart-add 37 | display inline-block 38 | padding 6px 39 | line-height 24px 40 | font-size 24px 41 | vertical-align top 42 | color rgb(0, 160, 220, 0.2) 43 | 44 | 45 | -------------------------------------------------------------------------------- /src/components/ratingselect/ratingselect.styl: -------------------------------------------------------------------------------- 1 | @import "../../common/stylus/mixin.styl" 2 | .ratingselect 3 | .rating-type 4 | padding 18px 0 5 | margin 0 18px 6 | border-1px(rgba(7, 17, 27, 0.1)) 7 | font-size 0 8 | .block 9 | display inline-block 10 | padding 8px 12px 11 | margin-right 8px 12 | border-radius 1px 13 | font-size 12px 14 | color rgb(77, 85, 93) 15 | &.positive 16 | background rgba(0, 160, 220, 0.2) 17 | &.active 18 | color #ffffff 19 | background rgb(0, 160, 220) 20 | &.negative 21 | background rgba(77, 85, 93, 0.2) 22 | &.active 23 | color #ffffff 24 | background rgb(77, 85, 93) 25 | .count 26 | font-size 8px 27 | margin-left 2px 28 | line-height 16px 29 | .switch 30 | padding 12px 18px 31 | line-height 24px 32 | font-size 12px 33 | color rgb(147, 153, 159) 34 | border 1px solid rgba(1, 17, 27, 0.1) 35 | font-size 0 36 | &.on 37 | .iconfont 38 | color #00c850 39 | .iconfont 40 | display inline-block 41 | vertical-align top 42 | font-size 24px 43 | margin-right 4px 44 | .text { 45 | font-size 12px 46 | } 47 | 48 | -------------------------------------------------------------------------------- /src/common/stylus/font.styl: -------------------------------------------------------------------------------- 1 | 2 | @font-face {font-family: "iconfont"; 3 | src: url('../fonts/iconfont.eot?t=1481787488332'); /* IE9*/ 4 | src: url('../fonts/iconfont.eot?t=1481787488332#iefix') format('embedded-opentype'), /* IE6-IE8 */ 5 | url('../fonts/iconfont.woff?t=1481787488332') format('woff'), /* chrome, firefox */ 6 | url('../fonts/iconfont.ttf?t=1481787488332') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ 7 | url('../fonts/iconfont.svg?t=1481787488332#iconfont') format('svg'); /* iOS 4.1- */ 8 | } 9 | 10 | .iconfont { 11 | font-family:"iconfont" !important; 12 | font-size:16px; 13 | font-style:normal; 14 | -webkit-font-smoothing: antialiased; 15 | -moz-osx-font-smoothing: grayscale; 16 | } 17 | 18 | .icon-zuoyoujiantou:before { content: "\e600"; } 19 | 20 | .icon-gouwuche:before { content: "\e601"; } 21 | 22 | .icon-jian:before { content: "\e629"; } 23 | 24 | .icon-aixin:before { content: "\e61f"; } 25 | 26 | .icon-down:before { content: "\e603"; } 27 | 28 | .icon-cha:before { content: "\e646"; } 29 | 30 | .icon-jia:before { content: "\e622"; } 31 | 32 | .icon-gou:before { content: "\e73d"; } 33 | 34 | .icon-damuzhi:before { content: "\e607"; } 35 | 36 | .icon-weibiaoti6-copy:before { content: "\e670"; } 37 | 38 | -------------------------------------------------------------------------------- /config/index.js: -------------------------------------------------------------------------------- 1 | // see http://vuejs-templates.github.io/webpack for documentation. 2 | var path = require('path') 3 | 4 | module.exports = { 5 | build: { 6 | env: require('./prod.env'), 7 | index: path.resolve(__dirname, '../dist/index.html'), 8 | assetsRoot: path.resolve(__dirname, '../dist'), 9 | assetsSubDirectory: './static', 10 | assetsPublicPath: './', 11 | productionSourceMap: true, 12 | // Gzip off by default as many popular static hosts such as 13 | // Surge or Netlify already gzip all static assets for you. 14 | // Before setting to `true`, make sure to: 15 | // npm install --save-dev compression-webpack-plugin 16 | productionGzip: false, 17 | productionGzipExtensions: ['js', 'css'] 18 | }, 19 | dev: { 20 | env: require('./dev.env'), 21 | port: 8080, 22 | assetsSubDirectory: 'static', 23 | assetsPublicPath: '/', 24 | proxyTable: {}, 25 | // CSS Sourcemaps off by default because relative paths are "buggy" 26 | // with this option, according to the CSS-Loader README 27 | // (https://github.com/webpack/css-loader#sourcemaps) 28 | // In our experience, they generally work as expected, 29 | // just be aware of this issue when enabling this option. 30 | cssSourceMap: false 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/components/star/star.styl: -------------------------------------------------------------------------------- 1 | @import "../../common/stylus/mixin.styl" 2 | .star 3 | font-size 0px 4 | .star-item 5 | display inline-block 6 | background-repeat no-repeat 7 | &.star-48 8 | .star-item 9 | width 20px 10 | height 20px 11 | margin-right 22px 12 | background-size 20px 20px 13 | &:last-child 14 | margin-right 0 15 | &.on 16 | bg-image('star48_on') 17 | &.half 18 | bg-image('star48_half') 19 | &.off 20 | bg-image('star48_off') 21 | &.star-36 22 | .star-item 23 | width 15px 24 | height 15px 25 | margin-right 3px 26 | background-size 15px 15px 27 | &:last-child 28 | margin-right 0 29 | &.on 30 | bg-image('star36_on') 31 | &.half 32 | bg-image('star36_half') 33 | &.off 34 | bg-image('star36_off') 35 | &.star-24 36 | .star-item 37 | width 10px 38 | height 10px 39 | margin-right 3px 40 | background-size 10px 10px 41 | &:last-child 42 | margin-right 0 43 | &.on 44 | bg-image('star24_on') 45 | &.half 46 | bg-image('star24_half') 47 | &.off 48 | bg-image('star24_off') 49 | -------------------------------------------------------------------------------- /src/components/star/star.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 46 | 49 | -------------------------------------------------------------------------------- /src/components/cartControl/cartControl.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 48 | 51 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | > 本项目是基于vue2最新实战项目,vue2 +vue-router2 + es6 +webpack 高仿饿了么app 2 | 3 | ### 项目技术架构 4 | *** 5 | * vue-cli 6 | * vue 7 | * vue-router 8 | * vue-infinite-scroll 9 | * webpack 10 | 11 | ###上图 12 | *** 13 | * 加入购物车动画 14 | 15 | ![11.gif](http://upload-images.jianshu.io/upload_images/4249223-8d462b93150db24e.gif?imageMogr2/auto-orient/strip) 16 | 17 | * 弹出购物车 商品详情页 18 | 19 | ![2222.gif](http://upload-images.jianshu.io/upload_images/4249223-71b66b4249d868bd.gif?imageMogr2/auto-orient/strip) 20 | 21 | * 分类切换 图片左右滑动 22 | 23 | ![3333.gif](http://upload-images.jianshu.io/upload_images/4249223-f0921b44740f6d4f.gif?imageMogr2/auto-orient/strip) 24 | 25 | ###安装 26 | npm install 27 | ``` 28 | 启动服务(http://localhost:8080) 29 | 30 | ``` 31 | npm run dev 32 | ``` 33 | 发布代码 34 | 35 | ``` 36 | npm run build 37 | ``` 38 | ### 安装注意 39 | 安装 vue-cli 40 | ``` 41 | npm install -g vue-cli 42 | ``` 43 | 安装 vue-cli eslint 44 | ``` 45 | npm install -g eslint 46 | ``` 47 | 安装依赖 friendly-errors-webpack-plugin 48 | ``` 49 | npm install friendly-errors-webpack-plugin --save-dev 50 | ``` 51 | ###目录结构 52 | *** 53 |
54 | ├── build              // 构建服务和webpack配置
55 | ├── config             // 项目不同环境的配置
56 | ├── dist               // 项目build目录
57 | ├── index.html         // 项目入口文件
58 | ├── package.json       // 项目配置文件
59 | ├── src                // 生产目录
60 | │   ├── assets         // 图片资源
61 | │   ├── common          // 公共的css js 资源
62 | │   ├── components     // 各种组件
63 | │   ├── App.vue         // 主页面 
64 | │   └── main.js        // Webpack 预编译入口
65 | 
66 | 67 | ###实现的功能 68 | *** 69 | * 商品滚动 ,商品滚轮滚动 70 | * 商品联动 71 | * 加入购物车,移除购物车 72 | * 显示评论 评论筛选 73 | * 图片左右滑动 74 | * 商品详情 父子组件的通信 75 | * 等 76 | 77 | 78 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "eleme", 3 | "version": "1.0.0", 4 | "description": "A Vue.js project", 5 | "author": "yangyi <639293382@qq.com>", 6 | "private": true, 7 | "scripts": { 8 | "dev": "node build/dev-server.js", 9 | "build": "node build/build.js", 10 | "lint": "eslint --ext .js,.vue src" 11 | }, 12 | "dependencies": { 13 | "better-scroll": "^0.1.8", 14 | "stylus": "^0.54.5", 15 | "vue": "^2.1.0", 16 | "vue-resource": "^1.0.3", 17 | "vue-router": "^2.1.1" 18 | }, 19 | "devDependencies": { 20 | "stylus-loader": "^2.4.0", 21 | "autoprefixer": "^6.4.0", 22 | "babel-core": "^6.0.0", 23 | "babel-eslint": "^7.0.0", 24 | "babel-loader": "^6.0.0", 25 | "babel-plugin-transform-runtime": "^6.0.0", 26 | "babel-preset-es2015": "^6.0.0", 27 | "babel-preset-stage-2": "^6.0.0", 28 | "babel-register": "^6.0.0", 29 | "chalk": "^1.1.3", 30 | "connect-history-api-fallback": "^1.1.0", 31 | "css-loader": "^0.25.0", 32 | "eslint": "^3.7.1", 33 | "eslint-friendly-formatter": "^2.0.5", 34 | "eslint-loader": "^1.5.0", 35 | "eslint-plugin-html": "^1.3.0", 36 | "eslint-config-standard": "^6.1.0", 37 | "eslint-plugin-promise": "^2.0.1", 38 | "eslint-plugin-standard": "^2.0.1", 39 | "eventsource-polyfill": "^0.9.6", 40 | "express": "^4.13.3", 41 | "extract-text-webpack-plugin": "^1.0.1", 42 | "file-loader": "^0.9.0", 43 | "function-bind": "^1.0.2", 44 | "html-webpack-plugin": "^2.8.1", 45 | "http-proxy-middleware": "^0.17.2", 46 | "json-loader": "^0.5.4", 47 | "semver": "^5.3.0", 48 | "opn": "^4.0.2", 49 | "ora": "^0.3.0", 50 | "shelljs": "^0.7.4", 51 | "url-loader": "^0.5.7", 52 | "vue-loader": "^10.0.0", 53 | "vue-style-loader": "^1.0.0", 54 | "vue-template-compiler": "^2.1.0", 55 | "webpack": "^1.13.2", 56 | "webpack-dev-middleware": "^1.8.3", 57 | "webpack-hot-middleware": "^2.12.2", 58 | "webpack-merge": "^0.14.1" 59 | }, 60 | "engines": { 61 | "node": ">= 4.0.0", 62 | "npm": ">= 3.0.0" 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /static/css/reset.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/) 3 | * http://cssreset.com 4 | */ 5 | html, body, div, span, applet, object, iframe, 6 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 7 | a, abbr, acronym, address, big, cite, code, 8 | del, dfn, em, img, ins, kbd, q, s, samp, 9 | small, strike, strong, sub, sup, tt, var, 10 | b, u, i, center, 11 | dl, dt, dd, ol, ul, li, 12 | fieldset, form, label, legend, 13 | table, caption, tbody, tfoot, thead, tr, th, td, 14 | article, aside, canvas, details, embed, 15 | figure, figcaption, footer, header, 16 | menu, nav, output, ruby, section, summary, 17 | time, mark, audio, video, input { 18 | margin: 0; 19 | padding: 0; 20 | border: 0; 21 | font-size: 100%; 22 | font-weight: normal; 23 | vertical-align: baseline; 24 | } 25 | 26 | /* HTML5 display-role reset for older browsers */ 27 | article, aside, details, figcaption, figure, 28 | footer, header, menu, nav, section { 29 | display: block; 30 | } 31 | 32 | body { 33 | line-height: 1; 34 | } 35 | 36 | blockquote, q { 37 | quotes: none; 38 | } 39 | 40 | blockquote:before, blockquote:after, 41 | q:before, q:after { 42 | content: none; 43 | } 44 | 45 | table { 46 | border-collapse: collapse; 47 | border-spacing: 0; 48 | } 49 | 50 | /* custom */ 51 | a { 52 | color: #7e8c8d; 53 | text-decoration: none; 54 | -webkit-backface-visibility: hidden; 55 | } 56 | 57 | li { 58 | list-style: none; 59 | } 60 | 61 | ::-webkit-scrollbar { 62 | width: 5px; 63 | height: 5px; 64 | } 65 | 66 | ::-webkit-scrollbar-track-piece { 67 | background-color: rgba(0, 0, 0, 0.2); 68 | -webkit-border-radius: 6px; 69 | } 70 | 71 | ::-webkit-scrollbar-thumb:vertical { 72 | height: 5px; 73 | background-color: rgba(125, 125, 125, 0.7); 74 | -webkit-border-radius: 6px; 75 | } 76 | 77 | ::-webkit-scrollbar-thumb:horizontal { 78 | width: 5px; 79 | background-color: rgba(125, 125, 125, 0.7); 80 | -webkit-border-radius: 6px; 81 | } 82 | 83 | html, body { 84 | width: 100%; 85 | } 86 | 87 | body { 88 | -webkit-text-size-adjust: none; 89 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 90 | background-color: #ffffff; 91 | } 92 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 31 | 63 | 90 | -------------------------------------------------------------------------------- /src/components/ratingselect/ratingselect.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 92 | 95 | -------------------------------------------------------------------------------- /src/components/goods/goods.styl: -------------------------------------------------------------------------------- 1 | @import "../../common/stylus/mixin.styl" 2 | .good 3 | display flex 4 | position absolute 5 | width 100% 6 | top 174px 7 | bottom 46px 8 | overflow hidden 9 | .menu-wrapper 10 | flex 0 0 80px 11 | width 80px 12 | background #f3f5f7 13 | .menu-item 14 | display table 15 | width 56px 16 | height 54px 17 | line-height 14px 18 | padding 0 12px 19 | &.current 20 | position relative 21 | z-index 10 22 | margin-top -1px 23 | background #fff 24 | font-weight 700 25 | .text 26 | border-none() 27 | .icon 28 | display inline-block 29 | width 12px 30 | height 12px 31 | vertical-align top 32 | margin-right 4px 33 | background-size 12px 12px 34 | background-repeat no-repeat 35 | &.decrease 36 | bg-image('decrease_3') 37 | &.discount 38 | bg-image('discount_3') 39 | &.guarantee 40 | bg-image('guarantee_3') 41 | &.invoice 42 | bg-image('invoice_3') 43 | &.special 44 | bg-image('special_3') 45 | .text 46 | display table-cell 47 | width 56px 48 | vertical-align middle 49 | border-1px(rgba(7, 17, 27, 0.1)) 50 | font-size 12px 51 | .foods-wrapper 52 | flex 1 53 | .food-list 54 | .title 55 | padding-left 14px 56 | height 26px 57 | line-height 26px 58 | border-left 2px solid #d9dde1 59 | font-size 12px 60 | color rgb(147, 153, 159) 61 | background #f3f5f7 62 | .food-item 63 | display flex 64 | margin 18px 65 | padding-bottom 18px 66 | border-1px(rgba(7, 17, 27, 0.1)) 67 | &:last-child 68 | border-none() 69 | margin-bottom 0px 70 | .icon 71 | flex 0 0 57px 72 | margin-right 10px 73 | .content 74 | flex 1 75 | .name 76 | margin 2px 0 8px 0 77 | font-size 14px 78 | line-height 14px 79 | height 14px 80 | color rgb(7, 17, 27) 81 | .desc, .extra 82 | font-size 10px 83 | line-height 10px 84 | color rgb(147, 153, 159) 85 | .desc 86 | margin-bottom 8px 87 | line-height 12px 88 | .extra 89 | .count 90 | margin-right 12px 91 | .price 92 | font-weight 700px 93 | line-height 24px 94 | .now 95 | margin-right 8px 96 | font-size 14px 97 | color rgb(240, 20, 20) 98 | .old 99 | font-size 10px 100 | color rgb(147, 153, 159) 101 | text-decoration line-through 102 | .cartControl-wrapper 103 | position absolute 104 | right 0 105 | bottom 12px 106 | 107 | 108 | 109 | 110 | 111 | -------------------------------------------------------------------------------- /resource/PSD/外卖02_商品页_公告及优惠信息.mkm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/components/header/header.vue: -------------------------------------------------------------------------------- 1 | 68 | 97 | 100 | -------------------------------------------------------------------------------- /src/components/ratings/ratings.styl: -------------------------------------------------------------------------------- 1 | @import "../../common/stylus/mixin.styl" 2 | .ratings 3 | position absolute 4 | top 174px 5 | bottom 0 6 | left 0 7 | width 100% 8 | overflow hidden 9 | .overview 10 | display flex 11 | padding 18px 0 18px 18px 12 | .overview-left 13 | flex 0 0 137px 14 | width 137px 15 | padding 6px 0px 16 | border-right 1px solid rgba(7, 17, 27, 0.1) 17 | text-align center 18 | @media only screen and (max-width 320px) 19 | flex 0 0 110px 20 | width 110px 21 | .score 22 | margin-bottom 12px 23 | line-height 28px 24 | font-size 24px 25 | color rgb(255, 153, 0) 26 | .title 27 | margin-bottom 8px 28 | line-height 12px 29 | font-size 12px 30 | color rgb(7, 17, 27) 31 | .rank 32 | line-height 10px 33 | font-size 12px 34 | color rgb(147, 153, 159) 35 | .overview-right 36 | flex 1 37 | padding 6px 0 6px 24px 38 | @media only screen and (max-width 320px) 39 | padding-left 6px 40 | .score-wrapper 41 | line-height 18px 42 | margin-top 8px 43 | font-size 0 44 | .title 45 | display inline-block 46 | vertical-align top 47 | line-height 18px 48 | font-size 12px 49 | color rgb(7, 17, 27) 50 | .star 51 | display inline-block 52 | margin 0 12px 53 | vertical-align top 54 | .score 55 | display inline-block 56 | vertical-align top 57 | line-height 18px 58 | font-size 12px 59 | color rgb(266, 153, 0) 60 | .delivery-wrapper 61 | font-size 0 62 | .title 63 | display inline-block 64 | vertical-align top 65 | line-height 18px 66 | font-size 12px 67 | color rgb(7, 17, 27) 68 | .delivery 69 | display inline-block 70 | margin-left 12px 71 | vertical-align top 72 | line-height 18px 73 | font-size 12px 74 | color rgb(147, 153, 159) 75 | 76 | .rating-wrapper 77 | padding 0 18px 78 | .rating-item 79 | display flex 80 | padding 18px 0 81 | border-1px(rgba(1, 17, 27, 0.1)) 82 | .avatar 83 | flex 0 0 28px 84 | width 28px 85 | margin-right 12px 86 | img 87 | border-radius 50% 88 | .content 89 | position relative 90 | flex 1 91 | .name 92 | margin-bottom 4px 93 | line-height 12px 94 | font-weight 700 95 | font-size 10px 96 | color rgb(7, 17, 27) 97 | .star-wrapper 98 | margin-bottom 6px 99 | font-size 0 100 | .star 101 | display inline-block 102 | margin-right 16px 103 | vertical-align top 104 | .delivery 105 | display inline-block 106 | vertical-align top 107 | font-size 10px 108 | line-height 12px 109 | color rgb(147, 153, 159) 110 | .text 111 | line-height 18px 112 | color rgb(7, 17, 27) 113 | font-size 12px 114 | margin-bottom 8px 115 | .recommend 116 | line-height 16px 117 | font-size 0 118 | .iconfont, .item 119 | display inline-block 120 | margin 0 8px 4px 0 121 | font-size 9px 122 | .iconfont 123 | color rgb(0, 160, 220) 124 | .item 125 | padding 0 6px 126 | border 1px solid rgba(7, 17, 27, 0.1) 127 | border-radius 1px 128 | color rgb(147, 153, 159) 129 | background #fffff 130 | .time 131 | position absolute 132 | top 0 133 | right 0 134 | line-height 12px 135 | font-size 10px 136 | color rgb(147, 153, 159) 137 | 138 | 139 | 140 | -------------------------------------------------------------------------------- /resource/PSD/外卖03_商品页_购物车详情.mkm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/components/food/food.styl: -------------------------------------------------------------------------------- 1 | @import "../../common/stylus/mixin.styl" 2 | .food 3 | position fixed 4 | left: 0 5 | top: 0 6 | bottom 48px 7 | z-index 30 8 | width 100% 9 | background #ffffff 10 | &.fade-enter-active, &.fade-leave-active { 11 | transition: all 0.2s linear 12 | transform translate3d(0, 0, 0) 13 | } 14 | &.fade-enter, &.fade-leave-active { 15 | opacity: 0 16 | transform translate3d(100%, 0, 0) 17 | } 18 | .image-header 19 | position relative 20 | width 100% 21 | height 0 22 | padding-top 100% 23 | img 24 | position absolute 25 | top 0 26 | width 100% 27 | height 100% 28 | .back 29 | position absolute 30 | top 10px 31 | left 0 32 | .iconfont 33 | display block 34 | padding 10px 35 | font-size 20px 36 | color #ffffff 37 | 38 | .content 39 | position: relative; 40 | padding 18px 41 | .title 42 | line-height 14px 43 | margin-bottom 8px 44 | font-size 14px 45 | font-weight 700 46 | color rgb(7, 17, 27) 47 | .detail 48 | margin-bottom 18px 49 | line-height 10px 50 | font-size 0 51 | height 10px 52 | .sell-count, .rating 53 | font-size 10px 54 | display inline-block 55 | color rgb(147, 153, 159) 56 | .sell-count 57 | margin-right 12px 58 | .price 59 | font-weight 700px 60 | line-height 24px 61 | .now 62 | margin-right 8px 63 | font-size 14px 64 | color rgb(240, 20, 20) 65 | .old 66 | font-size 10px 67 | color rgb(147, 153, 159) 68 | text-decoration line-through 69 | .cartControl-wrapper 70 | position absolute 71 | right 12px 72 | bottom 12px 73 | .buy 74 | position absolute 75 | right 18px 76 | bottom 18px 77 | z-index 10 78 | height 24px 79 | line-height 24px 80 | padding 0 12px 81 | box-sizing border-box 82 | border-radius 12px 83 | font-size 10px 84 | color #fff 85 | background rgb(0, 160, 220) 86 | &.buy-enter-active, &.buy-leave-active { 87 | transition: all 0.2s 88 | opacity: 0 89 | } 90 | &.buy-enter, &.buy-leave-active { 91 | opacity: 0 92 | 93 | } 94 | .info 95 | padding 18px 96 | .title 97 | line-height 14px 98 | margin-bottom 6px 99 | font-size 14px 100 | color rgb(7, 17, 27) 101 | .text 102 | font-size 12px 103 | line-height 24px 104 | padding 0 8px 105 | color rgb(77, 85, 93) 106 | .rating 107 | padding-top 18px 108 | .title 109 | line-height 14px 110 | margin-left 18px 111 | font-size 14px 112 | color rgb(7, 17, 27) 113 | .rating-wrapper 114 | padding 0 18px 115 | .rating-item 116 | position relative 117 | padding 16px 0 118 | border-1px(rgba(1, 17, 27, 0.1)) 119 | .user 120 | position absolute 121 | right 0 122 | top 16px 123 | font-size 0 124 | line-height 12px 125 | .name 126 | display inline-block 127 | vertical-align top 128 | font-size 10px 129 | color rgb(147, 153, 159) 130 | margin-right 6px 131 | .avatar 132 | border-radius 50% 133 | .time 134 | margin-bottom 6px 135 | line-height 12px 136 | font-size 10px 137 | color rgb(147, 153, 159) 138 | .text 139 | line-height 16px 140 | font-size 12px 141 | color rgb(7, 17, 27) 142 | .iconfont 143 | margin-right 4px 144 | line-height 16px 145 | font-size 12px 146 | .icon-damuzhi 147 | color rgb(0, 160, 220) 148 | .icon-down 149 | color rgb(147, 153, 159) 150 | 151 | .no-rating 152 | padding 16px 0 153 | font-size 12px 154 | color rgb(147, 153, 159) 155 | -------------------------------------------------------------------------------- /src/components/seller/seller.styl: -------------------------------------------------------------------------------- 1 | @import "../../common/stylus/mixin.styl" 2 | @import "../../common/stylus/base.styl" 3 | .seller 4 | position absolute 5 | top 174px 6 | bottom 0 7 | left 0 8 | width 100% 9 | overflow hidden 10 | .overview 11 | padding 18px 12 | .title 13 | margin-bottom 8px 14 | line-height 14px 15 | color rgb(7, 17, 27) 16 | font-size 14px 17 | .desc 18 | padding-bottom 18px 19 | font-size 0 20 | border-1px(rgba(7, 17, 27, 0.1)) 21 | .star 22 | display inline-block 23 | vertical-align top 24 | margin-right 8px 25 | .text 26 | display inline-block 27 | vertical-align top 28 | margin-right 12px 29 | line-height 18px 30 | font-size 10px 31 | color rgb(77, 85, 93) 32 | .remark 33 | display flex 34 | padding-top 18px 35 | .block 36 | flex 1 37 | text-align center 38 | border-right 1px solid rgba(7, 17, 27, 0.1) 39 | &:last-child 40 | border none 41 | h2 42 | margin-bottom 4px 43 | line-height 10px 44 | font-size 10px 45 | color rgb(147, 153, 149) 46 | .content 47 | line-height 24px 48 | font-size 10px 49 | color rgb(7, 17, 27) 50 | .stress 51 | font-size 24px 52 | 53 | 54 | 55 | 56 | .favorite 57 | position absolute 58 | right 11px 59 | top 18px 60 | width 50px 61 | text-align center 62 | .iconfont 63 | display block 64 | margin-bottom 4px 65 | line-height 24px 66 | font-size 24px 67 | width 50px 68 | color #d4d6d9 69 | &.active 70 | color rgb(240,20,20) 71 | .text 72 | line-height 10px 73 | font-size 10px 74 | color rgb(77,85,93) 75 | .bulletin 76 | padding 18px 18px 0 18px 77 | .title 78 | margin-bottom 8px 79 | line-height 14px 80 | color rgb(7, 17, 27) 81 | font-size 14px 82 | .content-wrapper 83 | padding 0 12px 16px 1px 84 | border-1px(rgba(7, 17, 27, 0.1)) 85 | .content 86 | line-height 24px 87 | font-size 12px color rgb(240, 20, 20) 88 | .supports 89 | .support-item 90 | padding 16px 12px 91 | border-1px(rgba(7, 17, 27, 0.1)) 92 | font-size 0 93 | &:last-child 94 | border-none() 95 | .icon 96 | display inline-block 97 | width 16px 98 | height 16px 99 | vertical-align top 100 | margin-right 6px 101 | background-size 16px 16px 102 | background-repeat no-repeat 103 | &.decrease 104 | bg-image('decrease_4') 105 | &.discount 106 | bg-image('discount_4') 107 | &.guarantee 108 | bg-image('guarantee_4') 109 | &.invoice 110 | bg-image('invoice_4') 111 | &.special 112 | bg-image('special_4') 113 | .text 114 | display inline-block 115 | font-size 12px 116 | line-height 16px 117 | color rgb(7, 17, 27) 118 | .pics 119 | padding 18px 120 | .title 121 | margin-bottom 12px 122 | line-height 14px 123 | color rgb(7, 17, 27) 124 | font-size 14px 125 | .pic-wrapper 126 | width 100% 127 | overflow hidden 128 | white-space nowrap /*不这行*/ 129 | .pic-list 130 | font-size 0 131 | .pic-item 132 | display inline-block 133 | margin-right 6px 134 | width 120px 135 | height 90px 136 | &:last-child 137 | margin 0 138 | .info 139 | padding 18px 18px 0 18px 140 | color rgb(7, 17, 27) 141 | .title 142 | padding-bottom 12px 143 | line-height 14px 144 | border-1px(rgba(7, 17, 27, 0.1)) 145 | font-size 14px 146 | .info-item 147 | padding 16px 12px 148 | line-height 16px 149 | border-1px(rgba(7, 17, 27, 0.1)) 150 | font-size 12px 151 | &:last-child 152 | border-none() 153 | 154 | -------------------------------------------------------------------------------- /src/components/seller/seller.vue: -------------------------------------------------------------------------------- 1 | 70 | 71 | 137 | 140 | -------------------------------------------------------------------------------- /src/components/ratings/ratings.vue: -------------------------------------------------------------------------------- 1 | 60 | 61 | 134 | 137 | -------------------------------------------------------------------------------- /src/components/food/food.vue: -------------------------------------------------------------------------------- 1 | 64 | 65 | 147 | 150 | -------------------------------------------------------------------------------- /src/components/shopcart/shopCart.styl: -------------------------------------------------------------------------------- 1 | @import "../../common/stylus/mixin.styl" 2 | .shopCart 3 | position fixed 4 | left 0px 5 | bottom 0px 6 | z-index 50 7 | width 100% 8 | height 48px 9 | .content 10 | display flex 11 | background #141d27 12 | .content-left 13 | flex 1 14 | .logo-wrapper 15 | display inline-block 16 | position relative 17 | top -10px 18 | margin 0 12px 19 | padding 6px 20 | width 56px 21 | height 56px 22 | box-sizing border-box 23 | vertical-align top 24 | border-radius 50% 25 | background #141d27 26 | .num 27 | position absolute 28 | top 0 29 | right 0 30 | width 24px 31 | height 24px 32 | line-height 24px 33 | text-align center 34 | border-radius 16px 35 | font-size 9px 36 | font-weight 700 37 | color #ffffff 38 | background rgb(240, 20, 20) 39 | box-shadow 0 4px 8px 0 rgba(0, 0, 0, 0.4) 40 | .logo 41 | width 100% 42 | height 100% 43 | text-align center 44 | border-radius 50% 45 | background #2b343c 46 | &.highlight 47 | background rgb(0, 160, 220) 48 | .icon-gouwuche 49 | line-height 44px 50 | font-size 24px 51 | color #80858a 52 | &.highlight 53 | color #fff 54 | .price 55 | display inline-block 56 | vertical-align top 57 | margin-top 12px 58 | line-height 24px 59 | padding-right 12px 60 | box-sizing border-box 61 | border-right 1px solid rgba(255, 255, 255, 0.1); 62 | font-size 16px 63 | font-weight 700 64 | color rgba(255, 255, 255, 0.4); 65 | &.highlight 66 | color #ffffff 67 | .desc 68 | display inline-block 69 | vertical-align top 70 | line-height 24px 71 | margin-left 12px 72 | margin-top 12px 73 | color rgba(255, 255, 255, 0.4) 74 | font-size 10px 75 | .content-right 76 | flex 0 0 105px 77 | width 105px 78 | .pay 79 | height 48px 80 | line-height 48px 81 | text-align center 82 | font-size 12px 83 | color rgba(255, 255, 255, 0.4); 84 | font-weight 700 85 | background #2b333b 86 | &.not-enough 87 | background #2b333b 88 | &.enough 89 | background #00b43c 90 | color #ffffff 91 | .ball-container 92 | .ball 93 | position fixed 94 | left 32px 95 | bottom 22px 96 | z-index 200 97 | transition: all 0.6s cubic-bezier(0.49, -0.29, 0.75, 0.41) 98 | //&.drop-enter-active, &.drop-leave-active { 99 | // transition: all 0.4s linear 100 | //} 101 | //&.drop-enter, &.drop-leave-active { 102 | // opacity: 0 103 | // transform translate3d(24px, 0, 0) 104 | //} 105 | .inner 106 | width 16px 107 | height 16px 108 | border-radius 50% 109 | background rgb(0, 160, 220) 110 | transition: all 0.4s linear 111 | 112 | .shopcart-list 113 | position absolute 114 | top 0 115 | left 0 116 | z-index -1 117 | width 100% 118 | transform translate3d(0, -100%, 0) 119 | &.fade-enter-active, &.fade-leave-active { 120 | transition: all 0.5s 121 | transform translate3d(0, -100%, 0) 122 | } 123 | &.fade-enter, &.fade-leave-active { 124 | transform translate3d(0, 0, 0) 125 | } 126 | .list-header 127 | height 40px 128 | line-height 40px 129 | padding 0 18px 130 | background #f3f5f7 131 | border-bottom 1px solid rgba(7, 17, 27, 0.1) 132 | .title 133 | float left 134 | font-size 14px 135 | color rgb(7, 17, 27) 136 | .empty 137 | float right 138 | font-size 12px 139 | color rgb(0, 160, 220) 140 | .list-content 141 | padding 0 18px 142 | max-height 217px 143 | overflow hidden 144 | background #ffffff 145 | .shopcart-food 146 | position relative 147 | padding 12px 0 148 | box-sizing border-box 149 | border-1px(rgba(7, 17, 27, 0.1)) 150 | .name 151 | line-height 24px 152 | font-size 14px 153 | color rgb(7, 17, 27) 154 | .price 155 | position absolute 156 | right 90px 157 | bottom 12px 158 | line-height 24px 159 | font-size 14px 160 | font-weight 700 161 | color rgb(240, 20, 20) 162 | .cartControl-wrapper 163 | position absolute 164 | right 0 165 | bottom 6px 166 | 167 | .list-mask 168 | position fixed 169 | top 0 170 | left 0 171 | width 100% 172 | height 100% 173 | z-index 40 174 | backdrop-filter blur(10px) 175 | -webkit-backdrop-filter blur(10px) 176 | opacity 1 177 | background rgba(7, 17, 27, 0.6) 178 | &.fade-enter-active, &.fade-leave-active { 179 | opacity 1 180 | transition: all 0.5s 181 | background rgba(7, 17, 27, 0.6) 182 | } 183 | &.fade-enter, &.fade-leave-active { 184 | opacity 0 185 | background rgba(7, 17, 27, 0) 186 | } 187 | -------------------------------------------------------------------------------- /src/common/fonts/iconfont.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Created by FontForge 20120731 at Tue Dec 27 12:39:12 2016 6 | By admin 7 | 8 | 9 | 10 | 24 | 26 | 28 | 30 | 32 | 34 | 38 | 40 | 44 | 47 | 49 | 52 | 54 | 56 | 59 | 62 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /resource/PSD/外卖06_商家页.mkm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /resource/PSD/外卖05_评价页.mkm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /src/components/goods/goods.vue: -------------------------------------------------------------------------------- 1 | 48 | 166 | 169 | -------------------------------------------------------------------------------- /src/components/header/header.styl: -------------------------------------------------------------------------------- 1 | @import "../../common/stylus/mixin.styl" 2 | .header 3 | position relative 4 | color: #fff 5 | overflow hidden 6 | background: rgba(7, 17, 27, 0.5) 7 | .content-wrapper 8 | position relative 9 | padding: 24px 12px 18px 24px 10 | font-size: 0 11 | .avatar 12 | display: inline-block 13 | vertical-align top 14 | img 15 | border-radius 2px 16 | .content 17 | display: inline-block 18 | font-size: 14px 19 | margin-left 16px 20 | .title 21 | margin 2px 0 8px 0 22 | .brand 23 | display inline-block 24 | vertical-align top 25 | width 30px 26 | height 18px 27 | bg-image('brand') 28 | background-size 30px 18px 29 | background-repeat no-repeat 30 | .name 31 | margin-left 6px 32 | font-size 16px 33 | line-height 18px 34 | font-weight bold 35 | 36 | .description 37 | margin-bottom 10px 38 | line-height 12px 39 | font-size 12px 40 | .support 41 | .icon 42 | display inline-block 43 | width 12px 44 | height 12px 45 | vertical-align top 46 | margin-right 4px 47 | background-size 12px 12px 48 | background-repeat no-repeat 49 | &.decrease 50 | bg-image('decrease_1') 51 | &.discount 52 | bg-image('discount_1') 53 | &.guarantee 54 | bg-image('guarantee_1') 55 | &.invoice 56 | bg-image('invoice_1') 57 | &.special 58 | bg-image('special_1') 59 | .text 60 | line-height 12px 61 | font-size 12px 62 | .supports-count 63 | position absolute 64 | right 12px 65 | bottom 14px 66 | padding 0 8px 67 | height 24px 68 | line-height 24px 69 | border-radius 12px 70 | background rgba(0, 0, 0, 0.2) 71 | text-align content 72 | .count 73 | font-size 10px 74 | vertical-align top 75 | .icon 76 | margin-left 2px 77 | line-height 24px 78 | font-size 10px 79 | .bulletin-wrapper 80 | position relative 81 | background-color rgba(7, 17, 27, 0.2) 82 | height 28px 83 | line-height 28px 84 | padding 0 22px 0 12px 85 | white-space normal 86 | overflow hidden 87 | text-overflow ellipsis 88 | .bulletin-title 89 | display inline-block 90 | vertical-align top 91 | margin-top 8px 92 | width 22px 93 | height 12px 94 | bg-image('bulletin') 95 | background-size 22px 12px 96 | background-repeat no-repeat 97 | .bulletin-text 98 | vertical-align top 99 | margin 0 4px 100 | font-size 10px 101 | .icon 102 | position absolute 103 | font-size 20px 104 | right 12px 105 | top: 0px 106 | .background 107 | position absolute 108 | top: 0 109 | left 0 110 | width 100% 111 | height 100% 112 | z-index -1 113 | filter blur(10px) 114 | .detail 115 | position fixed 116 | z-index 100 117 | top 0 118 | right 0 119 | width 100% 120 | height 100% 121 | overflow auto 122 | background rgba(7, 17, 27, 0.8) 123 | -webkit-backdrop-filter blur(10px) 124 | &.fade-enter-active 125 | animation: bounce-in .5s; 126 | &.fade-leave-active 127 | animation: bounce-out .5s; 128 | @keyframes bounce-in { 129 | 0% { 130 | transform: scale(0); 131 | } 132 | 50% { 133 | transform: scale(1.5); 134 | } 135 | 100% { 136 | transform: scale(1); 137 | } 138 | } 139 | @keyframes bounce-out { 140 | 0% { 141 | transform: scale(1); 142 | } 143 | 50% { 144 | transform: scale(1.5); 145 | } 146 | 100% { 147 | transform: scale(0); 148 | } 149 | } 150 | .detail-wrapper 151 | width 100% 152 | min-height 100% 153 | .detail-main 154 | margin-top 64px 155 | padding-bottom 64px 156 | .name 157 | line-height 16px 158 | text-align center 159 | font-size 16px 160 | font-weight 700px 161 | .star-wrapper 162 | margin-top 18px 163 | padding 2px 0 164 | text-align center 165 | .title 166 | width 80% 167 | display flex 168 | margin 28px auto 0 auto 169 | .line 170 | flex: 1 171 | position relative 172 | top -6px 173 | border-bottom 1px solid rgba(255, 255, 255, 0.2) 174 | .text 175 | padding 0px 12px 176 | font-size 16px 177 | font-weight 700px 178 | .supports 179 | width 80% 180 | margin 22px auto 181 | .support-item 182 | padding 0 12px 183 | font-size 0px 184 | margin-bottom 12px 185 | &:last-child 186 | margin-bottom 0px 187 | .icon 188 | display inline-block 189 | width 16px 190 | height 16px 191 | vertical-align top 192 | margin-right 6px 193 | background-size 16px 16px 194 | background-repeat no-repeat 195 | &.decrease 196 | bg-image('decrease_2') 197 | &.discount 198 | bg-image('discount_2') 199 | &.guarantee 200 | bg-image('guarantee_2') 201 | &.invoice 202 | bg-image('invoice_2') 203 | &.special 204 | bg-image('special_2') 205 | .text 206 | line-height 12px 207 | font-size 12px 208 | color #ffffff 209 | .bulletin 210 | width 80% 211 | height 200px 212 | margin 22px auto 213 | .content 214 | padding 0 12px 215 | line-height 24px 216 | font-size 12px 217 | .detail-close 218 | position relative 219 | width 32px 220 | height 32px 221 | margin -64px auto 0 auto 222 | clear both 223 | font-size 32px 224 | 225 | 226 | 227 | -------------------------------------------------------------------------------- /src/components/shopcart/shopcart.vue: -------------------------------------------------------------------------------- 1 | 56 | 57 | 208 | 211 | -------------------------------------------------------------------------------- /resource/PSD/外卖04_商品页面_商品详情.mkm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /resource/SVG/keyboard_arrow_right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /resource/SVG/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /resource/SVG/check_circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /resource/SVG/add_circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /resource/SVG/favorite.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /resource/SVG/thumb_down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | --------------------------------------------------------------------------------