├── apps ├── __init__.py ├── goods │ ├── __init__.py │ ├── migrations │ │ ├── __init__.py │ │ └── 0001_initial.py │ ├── tests.py │ ├── admin.py │ ├── apps.py │ ├── forms.py │ ├── test.py │ ├── views.py │ └── models.py ├── trade │ ├── __init__.py │ ├── migrations │ │ └── __init__.py │ ├── models.py │ ├── tests.py │ ├── admin.py │ ├── views.py │ └── apps.py ├── users │ ├── __init__.py │ ├── migrations │ │ ├── __init__.py │ │ ├── 0002_emailverifyrecord.py │ │ └── 0001_initial.py │ ├── tests.py │ ├── admin.py │ ├── apps.py │ ├── forms.py │ ├── models.py │ ├── templates │ │ ├── price_detail.html │ │ ├── _register.html │ │ ├── login.html │ │ └── goods_list.html │ └── views.py ├── user_operation │ ├── __init__.py │ ├── migrations │ │ └── __init__.py │ ├── models.py │ ├── admin.py │ ├── tests.py │ ├── views.py │ └── apps.py ├── apiData │ ├── __init__.py │ ├── code.py │ ├── custom_error.py │ └── result.py └── utils │ ├── __init__.py │ └── email_send.py ├── extra_apps └── __init__.py ├── wave_club_shop ├── __init__.py ├── wsgi.py ├── urls.py ├── settings.online.py └── settings.local.py ├── README.md ├── static ├── AmazeUI-2.4.2 │ └── assets │ │ ├── css │ │ ├── app.css │ │ └── admin.css │ │ ├── i │ │ ├── favicon.png │ │ ├── app-icon72x72@2x.png │ │ ├── examples │ │ │ ├── admin-ie.png │ │ │ ├── blogPage.png │ │ │ ├── landing.png │ │ │ ├── admin-opera.png │ │ │ ├── adminPage.png │ │ │ ├── landingPage.png │ │ │ ├── loginPage.png │ │ │ ├── sidebarPage.png │ │ │ ├── admin-chrome.png │ │ │ ├── admin-firefox.png │ │ │ └── admin-safari.png │ │ └── startup-640x1096.png │ │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 │ │ └── js │ │ └── app.js ├── css │ ├── skin.css │ ├── form-validation.css │ ├── lostyle.css │ ├── bilstyle.css │ ├── sustyle.css │ ├── newstyle.css │ ├── bostyle.css │ ├── cmstyle.css │ ├── stepstyle.css │ ├── appstyle.css │ ├── colstyle.css │ ├── blogstyle.css │ ├── cpstyle.css │ ├── addstyle.css │ ├── footstyle.css │ ├── refstyle.css │ ├── optstyle.css │ ├── blstyle.css │ ├── dlstyle.css │ ├── sortstyle.css │ ├── seastyle.css │ ├── cartstyle.css │ └── infstyle.css ├── images │ ├── 1.jpg │ ├── 2.jpg │ ├── 3.jpg │ ├── 4.jpg │ ├── 5.jpg │ ├── 6.jpg │ ├── 7.jpg │ ├── 8.jpg │ ├── 9.jpg │ ├── 01.jpg │ ├── 02.jpg │ ├── 03.jpg │ ├── 10.jpg │ ├── 11.jpg │ ├── 556.png │ ├── 557.png │ ├── 559.png │ ├── 566.png │ ├── 72h.png │ ├── TJ.jpg │ ├── TJ2.jpg │ ├── ad1.jpg │ ├── ad2.jpg │ ├── ad3.jpg │ ├── ad4.jpg │ ├── ad5.jpg │ ├── ad6.jpg │ ├── ad7.jpg │ ├── ad8.jpg │ ├── big.jpg │ ├── cp.jpg │ ├── cp2.jpg │ ├── nut.jpg │ ├── nut.png │ ├── pay.png │ ├── tea.jpg │ ├── tea.png │ ├── tj.png │ ├── tj1.png │ ├── tj2.png │ ├── tw1.jpg │ ├── tw2.jpg │ ├── tw3.jpg │ ├── tw4.jpg │ ├── tw5.jpg │ ├── tw6.jpg │ ├── tw7.jpg │ ├── 图标.png │ ├── 01_mid.jpg │ ├── 02_mid.jpg │ ├── 03_mid.jpg │ ├── 2016.png │ ├── TB102.jpg │ ├── act1.png │ ├── act2.png │ ├── act3.png │ ├── addbg.png │ ├── advTip.jpg │ ├── bamboo.jpg │ ├── bamboo.png │ ├── blog01.jpg │ ├── blog02.jpg │ ├── blog03.jpg │ ├── blog04.jpg │ ├── blog05.jpg │ ├── blog06.jpg │ ├── blog07.jpg │ ├── blog08.jpg │ ├── blog09.jpg │ ├── bonus.png │ ├── cake.jpg │ ├── cake.png │ ├── candy.jpg │ ├── candy.png │ ├── cardbg.jpg │ ├── close.png │ ├── combo.png │ ├── coupon.png │ ├── day-to.png │ ├── extra.png │ ├── fish.jpg │ ├── fish.png │ ├── image.jpg │ ├── kuaidi.png │ ├── list1.jpg │ ├── logo.png │ ├── logo1.png │ ├── mask.png │ ├── meat.jpg │ ├── meat.png │ ├── navce.png │ ├── refund.png │ ├── row1.jpg │ ├── row2.jpg │ ├── row3.jpg │ ├── row4.jpg │ ├── sale-t.jpg │ ├── sale1.jpg │ ├── sale2.jpg │ ├── sale3.jpg │ ├── scoll1.png │ ├── scoll2.png │ ├── send.png │ ├── side.png │ ├── songzi.jpg │ ├── sprite.png │ ├── wallet.png │ ├── wdsc.png │ ├── 01_small.jpg │ ├── 02_small.jpg │ ├── 03_small.jpg │ ├── activity.jpg │ ├── addicon.png │ ├── addicon1.png │ ├── addicon2.png │ ├── browse1.jpg │ ├── checkbox.gif │ ├── chongzhi.png │ ├── clockbg.png │ ├── comment.png │ ├── cookies.jpg │ ├── cookies.png │ ├── couponli.png │ ├── huismall.jpg │ ├── iconbig.png │ ├── item-pic.jpg │ ├── loading.gif │ ├── logobig.png │ ├── logobig1.png │ ├── logobig2.png │ ├── mansmall.jpg │ ├── navsmall.jpg │ ├── package.jpg │ ├── package.png │ ├── peraddbg.png │ ├── receive.png │ ├── wangyin.jpg │ ├── weizhifu.jpg │ ├── zhifubao.jpg │ ├── 1_160x160.jpg │ ├── 3CoOkxrFOP.png │ ├── WechatPay.jpeg │ ├── YXARdXxj5.png │ ├── activity1.jpg │ ├── activity2.jpg │ ├── activity3.jpg │ ├── chocolate.jpg │ ├── chocolate.png │ ├── coupon2015.png │ ├── header-bg.png │ ├── header-bg1.jpg │ ├── hwbn40x40.jpg │ ├── icon-sale.png │ ├── iconsmall.png │ ├── iconsmall0.png │ ├── iconsmall1.png │ ├── iconsmall2.png │ ├── iconsmall3.png │ ├── imgsearch1.jpg │ ├── listsmall1.jpg │ ├── moneysmall.jpg │ ├── mygift_bg.png │ ├── no-img_mid_.jpg │ ├── peraddress.png │ ├── getAvatar.do.jpg │ ├── gift_intro_bg.png │ ├── gift_stamp_1.png │ ├── gift_stamp_2.png │ ├── gift_stamp_21.png │ ├── gift_stamp_3.png │ ├── gift_stamp_31.png │ ├── ibar_sprites.png │ ├── iconfont-bad.png │ ├── iconfont-good.png │ ├── peraddressbg.png │ ├── sale-t_clock.jpg │ ├── 62988.jpg_80x80.jpg │ ├── 65.jpg_120x120xz.jpg │ ├── 88.jpg_120x120xz.jpg │ ├── coupon20150805.png │ ├── iconfont-badon.png │ ├── iconfont-middle.png │ ├── index_ico_png32.png │ ├── weixin_code_145.png │ ├── 566fda5cN4b8a1675.gif │ ├── iconfont-evaluate.png │ ├── kouhong.jpg_80x80.jpg │ ├── return-process-cd.jpg │ ├── sys_item_selected.gif │ ├── TB1_pic.jpg_200x200.jpg │ ├── comment.jpg_400x400.jpg │ ├── 0-item_pic.jpg_220x220.jpg │ ├── 1-item_pic.jpg_220x220.jpg │ ├── T13iv.XiFdXXa94Hfd-32-32.png │ ├── -0-saturn_solar.jpg_220x220.jpg │ └── TB1SSK7JpXXXXXCXXXXXXXXXXXX-800-600.png ├── basic │ ├── images │ │ ├── logo.png │ │ ├── wdsc.png │ │ ├── loading.gif │ │ ├── logobar.png │ │ ├── logobig.png │ │ ├── chongzhi.png │ │ ├── ibar_sprites.png │ │ ├── no-img_mid_.jpg │ │ └── weixin_code_145.png │ └── js │ │ └── quick_links.js └── js │ ├── form-validation.js │ ├── jquery.imagezoom.min.js │ ├── list.js │ └── script.js ├── .vscode ├── settings.json └── launch.json ├── .gitignore ├── uwsgi.ini ├── manage.py └── requirements.txt /apps/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/goods/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/trade/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/users/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /extra_apps/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /wave_club_shop/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # wave_club_shop 2 | -------------------------------------------------------------------------------- /apps/goods/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/trade/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/user_operation/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/users/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/user_operation/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/apiData/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | -------------------------------------------------------------------------------- /apps/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/css/app.css: -------------------------------------------------------------------------------- 1 | /* Write your styles */ -------------------------------------------------------------------------------- /static/css/skin.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* CSS Document */ 3 | 4 | 5 | -------------------------------------------------------------------------------- /apps/goods/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /apps/trade/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /apps/trade/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /apps/users/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /apps/goods/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /apps/trade/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /apps/trade/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render 2 | 3 | # Create your views here. 4 | -------------------------------------------------------------------------------- /apps/user_operation/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /apps/users/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /static/images/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/1.jpg -------------------------------------------------------------------------------- /static/images/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/2.jpg -------------------------------------------------------------------------------- /static/images/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/3.jpg -------------------------------------------------------------------------------- /static/images/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/4.jpg -------------------------------------------------------------------------------- /static/images/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/5.jpg -------------------------------------------------------------------------------- /static/images/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/6.jpg -------------------------------------------------------------------------------- /static/images/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/7.jpg -------------------------------------------------------------------------------- /static/images/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/8.jpg -------------------------------------------------------------------------------- /static/images/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/9.jpg -------------------------------------------------------------------------------- /apps/user_operation/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /apps/user_operation/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /apps/user_operation/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render 2 | 3 | # Create your views here. 4 | -------------------------------------------------------------------------------- /static/images/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/01.jpg -------------------------------------------------------------------------------- /static/images/02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/02.jpg -------------------------------------------------------------------------------- /static/images/03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/03.jpg -------------------------------------------------------------------------------- /static/images/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/10.jpg -------------------------------------------------------------------------------- /static/images/11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/11.jpg -------------------------------------------------------------------------------- /static/images/556.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/556.png -------------------------------------------------------------------------------- /static/images/557.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/557.png -------------------------------------------------------------------------------- /static/images/559.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/559.png -------------------------------------------------------------------------------- /static/images/566.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/566.png -------------------------------------------------------------------------------- /static/images/72h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/72h.png -------------------------------------------------------------------------------- /static/images/TJ.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/TJ.jpg -------------------------------------------------------------------------------- /static/images/TJ2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/TJ2.jpg -------------------------------------------------------------------------------- /static/images/ad1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/ad1.jpg -------------------------------------------------------------------------------- /static/images/ad2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/ad2.jpg -------------------------------------------------------------------------------- /static/images/ad3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/ad3.jpg -------------------------------------------------------------------------------- /static/images/ad4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/ad4.jpg -------------------------------------------------------------------------------- /static/images/ad5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/ad5.jpg -------------------------------------------------------------------------------- /static/images/ad6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/ad6.jpg -------------------------------------------------------------------------------- /static/images/ad7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/ad7.jpg -------------------------------------------------------------------------------- /static/images/ad8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/ad8.jpg -------------------------------------------------------------------------------- /static/images/big.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/big.jpg -------------------------------------------------------------------------------- /static/images/cp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/cp.jpg -------------------------------------------------------------------------------- /static/images/cp2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/cp2.jpg -------------------------------------------------------------------------------- /static/images/nut.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/nut.jpg -------------------------------------------------------------------------------- /static/images/nut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/nut.png -------------------------------------------------------------------------------- /static/images/pay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/pay.png -------------------------------------------------------------------------------- /static/images/tea.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/tea.jpg -------------------------------------------------------------------------------- /static/images/tea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/tea.png -------------------------------------------------------------------------------- /static/images/tj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/tj.png -------------------------------------------------------------------------------- /static/images/tj1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/tj1.png -------------------------------------------------------------------------------- /static/images/tj2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/tj2.png -------------------------------------------------------------------------------- /static/images/tw1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/tw1.jpg -------------------------------------------------------------------------------- /static/images/tw2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/tw2.jpg -------------------------------------------------------------------------------- /static/images/tw3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/tw3.jpg -------------------------------------------------------------------------------- /static/images/tw4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/tw4.jpg -------------------------------------------------------------------------------- /static/images/tw5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/tw5.jpg -------------------------------------------------------------------------------- /static/images/tw6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/tw6.jpg -------------------------------------------------------------------------------- /static/images/tw7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/tw7.jpg -------------------------------------------------------------------------------- /static/images/图标.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/图标.png -------------------------------------------------------------------------------- /static/images/01_mid.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/01_mid.jpg -------------------------------------------------------------------------------- /static/images/02_mid.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/02_mid.jpg -------------------------------------------------------------------------------- /static/images/03_mid.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/03_mid.jpg -------------------------------------------------------------------------------- /static/images/2016.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/2016.png -------------------------------------------------------------------------------- /static/images/TB102.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/TB102.jpg -------------------------------------------------------------------------------- /static/images/act1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/act1.png -------------------------------------------------------------------------------- /static/images/act2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/act2.png -------------------------------------------------------------------------------- /static/images/act3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/act3.png -------------------------------------------------------------------------------- /static/images/addbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/addbg.png -------------------------------------------------------------------------------- /static/images/advTip.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/advTip.jpg -------------------------------------------------------------------------------- /static/images/bamboo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/bamboo.jpg -------------------------------------------------------------------------------- /static/images/bamboo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/bamboo.png -------------------------------------------------------------------------------- /static/images/blog01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/blog01.jpg -------------------------------------------------------------------------------- /static/images/blog02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/blog02.jpg -------------------------------------------------------------------------------- /static/images/blog03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/blog03.jpg -------------------------------------------------------------------------------- /static/images/blog04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/blog04.jpg -------------------------------------------------------------------------------- /static/images/blog05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/blog05.jpg -------------------------------------------------------------------------------- /static/images/blog06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/blog06.jpg -------------------------------------------------------------------------------- /static/images/blog07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/blog07.jpg -------------------------------------------------------------------------------- /static/images/blog08.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/blog08.jpg -------------------------------------------------------------------------------- /static/images/blog09.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/blog09.jpg -------------------------------------------------------------------------------- /static/images/bonus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/bonus.png -------------------------------------------------------------------------------- /static/images/cake.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/cake.jpg -------------------------------------------------------------------------------- /static/images/cake.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/cake.png -------------------------------------------------------------------------------- /static/images/candy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/candy.jpg -------------------------------------------------------------------------------- /static/images/candy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/candy.png -------------------------------------------------------------------------------- /static/images/cardbg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/cardbg.jpg -------------------------------------------------------------------------------- /static/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/close.png -------------------------------------------------------------------------------- /static/images/combo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/combo.png -------------------------------------------------------------------------------- /static/images/coupon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/coupon.png -------------------------------------------------------------------------------- /static/images/day-to.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/day-to.png -------------------------------------------------------------------------------- /static/images/extra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/extra.png -------------------------------------------------------------------------------- /static/images/fish.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/fish.jpg -------------------------------------------------------------------------------- /static/images/fish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/fish.png -------------------------------------------------------------------------------- /static/images/image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/image.jpg -------------------------------------------------------------------------------- /static/images/kuaidi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/kuaidi.png -------------------------------------------------------------------------------- /static/images/list1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/list1.jpg -------------------------------------------------------------------------------- /static/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/logo.png -------------------------------------------------------------------------------- /static/images/logo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/logo1.png -------------------------------------------------------------------------------- /static/images/mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/mask.png -------------------------------------------------------------------------------- /static/images/meat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/meat.jpg -------------------------------------------------------------------------------- /static/images/meat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/meat.png -------------------------------------------------------------------------------- /static/images/navce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/navce.png -------------------------------------------------------------------------------- /static/images/refund.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/refund.png -------------------------------------------------------------------------------- /static/images/row1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/row1.jpg -------------------------------------------------------------------------------- /static/images/row2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/row2.jpg -------------------------------------------------------------------------------- /static/images/row3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/row3.jpg -------------------------------------------------------------------------------- /static/images/row4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/row4.jpg -------------------------------------------------------------------------------- /static/images/sale-t.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/sale-t.jpg -------------------------------------------------------------------------------- /static/images/sale1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/sale1.jpg -------------------------------------------------------------------------------- /static/images/sale2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/sale2.jpg -------------------------------------------------------------------------------- /static/images/sale3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/sale3.jpg -------------------------------------------------------------------------------- /static/images/scoll1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/scoll1.png -------------------------------------------------------------------------------- /static/images/scoll2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/scoll2.png -------------------------------------------------------------------------------- /static/images/send.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/send.png -------------------------------------------------------------------------------- /static/images/side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/side.png -------------------------------------------------------------------------------- /static/images/songzi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/songzi.jpg -------------------------------------------------------------------------------- /static/images/sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/sprite.png -------------------------------------------------------------------------------- /static/images/wallet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/wallet.png -------------------------------------------------------------------------------- /static/images/wdsc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/wdsc.png -------------------------------------------------------------------------------- /static/images/01_small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/01_small.jpg -------------------------------------------------------------------------------- /static/images/02_small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/02_small.jpg -------------------------------------------------------------------------------- /static/images/03_small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/03_small.jpg -------------------------------------------------------------------------------- /static/images/activity.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/activity.jpg -------------------------------------------------------------------------------- /static/images/addicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/addicon.png -------------------------------------------------------------------------------- /static/images/addicon1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/addicon1.png -------------------------------------------------------------------------------- /static/images/addicon2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/addicon2.png -------------------------------------------------------------------------------- /static/images/browse1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/browse1.jpg -------------------------------------------------------------------------------- /static/images/checkbox.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/checkbox.gif -------------------------------------------------------------------------------- /static/images/chongzhi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/chongzhi.png -------------------------------------------------------------------------------- /static/images/clockbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/clockbg.png -------------------------------------------------------------------------------- /static/images/comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/comment.png -------------------------------------------------------------------------------- /static/images/cookies.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/cookies.jpg -------------------------------------------------------------------------------- /static/images/cookies.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/cookies.png -------------------------------------------------------------------------------- /static/images/couponli.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/couponli.png -------------------------------------------------------------------------------- /static/images/huismall.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/huismall.jpg -------------------------------------------------------------------------------- /static/images/iconbig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/iconbig.png -------------------------------------------------------------------------------- /static/images/item-pic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/item-pic.jpg -------------------------------------------------------------------------------- /static/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/loading.gif -------------------------------------------------------------------------------- /static/images/logobig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/logobig.png -------------------------------------------------------------------------------- /static/images/logobig1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/logobig1.png -------------------------------------------------------------------------------- /static/images/logobig2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/logobig2.png -------------------------------------------------------------------------------- /static/images/mansmall.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/mansmall.jpg -------------------------------------------------------------------------------- /static/images/navsmall.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/navsmall.jpg -------------------------------------------------------------------------------- /static/images/package.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/package.jpg -------------------------------------------------------------------------------- /static/images/package.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/package.png -------------------------------------------------------------------------------- /static/images/peraddbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/peraddbg.png -------------------------------------------------------------------------------- /static/images/receive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/receive.png -------------------------------------------------------------------------------- /static/images/wangyin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/wangyin.jpg -------------------------------------------------------------------------------- /static/images/weizhifu.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/weizhifu.jpg -------------------------------------------------------------------------------- /static/images/zhifubao.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/zhifubao.jpg -------------------------------------------------------------------------------- /static/basic/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/basic/images/logo.png -------------------------------------------------------------------------------- /static/basic/images/wdsc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/basic/images/wdsc.png -------------------------------------------------------------------------------- /static/images/1_160x160.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/1_160x160.jpg -------------------------------------------------------------------------------- /static/images/3CoOkxrFOP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/3CoOkxrFOP.png -------------------------------------------------------------------------------- /static/images/WechatPay.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/WechatPay.jpeg -------------------------------------------------------------------------------- /static/images/YXARdXxj5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/YXARdXxj5.png -------------------------------------------------------------------------------- /static/images/activity1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/activity1.jpg -------------------------------------------------------------------------------- /static/images/activity2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/activity2.jpg -------------------------------------------------------------------------------- /static/images/activity3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/activity3.jpg -------------------------------------------------------------------------------- /static/images/chocolate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/chocolate.jpg -------------------------------------------------------------------------------- /static/images/chocolate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/chocolate.png -------------------------------------------------------------------------------- /static/images/coupon2015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/coupon2015.png -------------------------------------------------------------------------------- /static/images/header-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/header-bg.png -------------------------------------------------------------------------------- /static/images/header-bg1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/header-bg1.jpg -------------------------------------------------------------------------------- /static/images/hwbn40x40.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/hwbn40x40.jpg -------------------------------------------------------------------------------- /static/images/icon-sale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/icon-sale.png -------------------------------------------------------------------------------- /static/images/iconsmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/iconsmall.png -------------------------------------------------------------------------------- /static/images/iconsmall0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/iconsmall0.png -------------------------------------------------------------------------------- /static/images/iconsmall1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/iconsmall1.png -------------------------------------------------------------------------------- /static/images/iconsmall2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/iconsmall2.png -------------------------------------------------------------------------------- /static/images/iconsmall3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/iconsmall3.png -------------------------------------------------------------------------------- /static/images/imgsearch1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/imgsearch1.jpg -------------------------------------------------------------------------------- /static/images/listsmall1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/listsmall1.jpg -------------------------------------------------------------------------------- /static/images/moneysmall.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/moneysmall.jpg -------------------------------------------------------------------------------- /static/images/mygift_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/mygift_bg.png -------------------------------------------------------------------------------- /static/images/no-img_mid_.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/no-img_mid_.jpg -------------------------------------------------------------------------------- /static/images/peraddress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/peraddress.png -------------------------------------------------------------------------------- /apps/goods/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class GoodsConfig(AppConfig): 5 | name = 'goods' 6 | -------------------------------------------------------------------------------- /apps/trade/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class TradeConfig(AppConfig): 5 | name = 'trade' 6 | -------------------------------------------------------------------------------- /apps/users/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class UsersConfig(AppConfig): 5 | name = 'users' 6 | -------------------------------------------------------------------------------- /static/basic/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/basic/images/loading.gif -------------------------------------------------------------------------------- /static/basic/images/logobar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/basic/images/logobar.png -------------------------------------------------------------------------------- /static/basic/images/logobig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/basic/images/logobig.png -------------------------------------------------------------------------------- /static/css/form-validation.css: -------------------------------------------------------------------------------- 1 | .container { 2 | max-width: 960px; 3 | } 4 | 5 | .lh-condensed { line-height: 1.25; } 6 | -------------------------------------------------------------------------------- /static/images/getAvatar.do.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/getAvatar.do.jpg -------------------------------------------------------------------------------- /static/images/gift_intro_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/gift_intro_bg.png -------------------------------------------------------------------------------- /static/images/gift_stamp_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/gift_stamp_1.png -------------------------------------------------------------------------------- /static/images/gift_stamp_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/gift_stamp_2.png -------------------------------------------------------------------------------- /static/images/gift_stamp_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/gift_stamp_21.png -------------------------------------------------------------------------------- /static/images/gift_stamp_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/gift_stamp_3.png -------------------------------------------------------------------------------- /static/images/gift_stamp_31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/gift_stamp_31.png -------------------------------------------------------------------------------- /static/images/ibar_sprites.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/ibar_sprites.png -------------------------------------------------------------------------------- /static/images/iconfont-bad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/iconfont-bad.png -------------------------------------------------------------------------------- /static/images/iconfont-good.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/iconfont-good.png -------------------------------------------------------------------------------- /static/images/peraddressbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/peraddressbg.png -------------------------------------------------------------------------------- /static/images/sale-t_clock.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/sale-t_clock.jpg -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.pythonPath": "/usr/local/bin/python3", 3 | "python.linting.pylintEnabled": true 4 | } -------------------------------------------------------------------------------- /static/basic/images/chongzhi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/basic/images/chongzhi.png -------------------------------------------------------------------------------- /static/images/62988.jpg_80x80.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/62988.jpg_80x80.jpg -------------------------------------------------------------------------------- /static/images/65.jpg_120x120xz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/65.jpg_120x120xz.jpg -------------------------------------------------------------------------------- /static/images/88.jpg_120x120xz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/88.jpg_120x120xz.jpg -------------------------------------------------------------------------------- /static/images/coupon20150805.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/coupon20150805.png -------------------------------------------------------------------------------- /static/images/iconfont-badon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/iconfont-badon.png -------------------------------------------------------------------------------- /static/images/iconfont-middle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/iconfont-middle.png -------------------------------------------------------------------------------- /static/images/index_ico_png32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/index_ico_png32.png -------------------------------------------------------------------------------- /static/images/weixin_code_145.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/weixin_code_145.png -------------------------------------------------------------------------------- /apps/apiData/code.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class Code(Enum): 5 | OK = 'OK' 6 | COMMON_ERROR = 'COMMON_ERROR' -------------------------------------------------------------------------------- /static/basic/images/ibar_sprites.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/basic/images/ibar_sprites.png -------------------------------------------------------------------------------- /static/basic/images/no-img_mid_.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/basic/images/no-img_mid_.jpg -------------------------------------------------------------------------------- /static/images/566fda5cN4b8a1675.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/566fda5cN4b8a1675.gif -------------------------------------------------------------------------------- /static/images/iconfont-evaluate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/iconfont-evaluate.png -------------------------------------------------------------------------------- /static/images/kouhong.jpg_80x80.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/kouhong.jpg_80x80.jpg -------------------------------------------------------------------------------- /static/images/return-process-cd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/return-process-cd.jpg -------------------------------------------------------------------------------- /static/images/sys_item_selected.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/sys_item_selected.gif -------------------------------------------------------------------------------- /static/basic/images/weixin_code_145.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/basic/images/weixin_code_145.png -------------------------------------------------------------------------------- /static/images/TB1_pic.jpg_200x200.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/TB1_pic.jpg_200x200.jpg -------------------------------------------------------------------------------- /static/images/comment.jpg_400x400.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/comment.jpg_400x400.jpg -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/i/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/AmazeUI-2.4.2/assets/i/favicon.png -------------------------------------------------------------------------------- /static/images/0-item_pic.jpg_220x220.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/0-item_pic.jpg_220x220.jpg -------------------------------------------------------------------------------- /static/images/1-item_pic.jpg_220x220.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/1-item_pic.jpg_220x220.jpg -------------------------------------------------------------------------------- /static/images/T13iv.XiFdXXa94Hfd-32-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/T13iv.XiFdXXa94Hfd-32-32.png -------------------------------------------------------------------------------- /apps/user_operation/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class UserOperationConfig(AppConfig): 5 | name = 'user_operation' 6 | -------------------------------------------------------------------------------- /static/images/-0-saturn_solar.jpg_220x220.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/-0-saturn_solar.jpg_220x220.jpg -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__/ 2 | .DS_Store 3 | mylog.log 4 | wave_club_shop/settings.py 5 | wave_club_shop/settings.local.py 6 | wave_club_shop/settings.online.py -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/AmazeUI-2.4.2/assets/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/i/app-icon72x72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/AmazeUI-2.4.2/assets/i/app-icon72x72@2x.png -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/i/examples/admin-ie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/AmazeUI-2.4.2/assets/i/examples/admin-ie.png -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/i/examples/blogPage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/AmazeUI-2.4.2/assets/i/examples/blogPage.png -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/i/examples/landing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/AmazeUI-2.4.2/assets/i/examples/landing.png -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/i/startup-640x1096.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/AmazeUI-2.4.2/assets/i/startup-640x1096.png -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/i/examples/admin-opera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/AmazeUI-2.4.2/assets/i/examples/admin-opera.png -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/i/examples/adminPage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/AmazeUI-2.4.2/assets/i/examples/adminPage.png -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/i/examples/landingPage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/AmazeUI-2.4.2/assets/i/examples/landingPage.png -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/i/examples/loginPage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/AmazeUI-2.4.2/assets/i/examples/loginPage.png -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/i/examples/sidebarPage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/AmazeUI-2.4.2/assets/i/examples/sidebarPage.png -------------------------------------------------------------------------------- /static/images/TB1SSK7JpXXXXXCXXXXXXXXXXXX-800-600.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/images/TB1SSK7JpXXXXXCXXXXXXXXXXXX-800-600.png -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/i/examples/admin-chrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/AmazeUI-2.4.2/assets/i/examples/admin-chrome.png -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/i/examples/admin-firefox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/AmazeUI-2.4.2/assets/i/examples/admin-firefox.png -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/i/examples/admin-safari.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/AmazeUI-2.4.2/assets/i/examples/admin-safari.png -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/AmazeUI-2.4.2/assets/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/AmazeUI-2.4.2/assets/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/AmazeUI-2.4.2/assets/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wave-club/wave_club_shop/HEAD/static/AmazeUI-2.4.2/assets/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /apps/goods/forms.py: -------------------------------------------------------------------------------- 1 | from django import forms 2 | 3 | class GoodsForm(forms.Form): 4 | username = forms.CharField(required=True) 5 | password = forms.CharField(required=True) 6 | -------------------------------------------------------------------------------- /apps/goods/test.py: -------------------------------------------------------------------------------- 1 | # -*- encoding: utf-8 -*- 2 | 3 | from random import shuffle 4 | 5 | aaa = list(range(20)) 6 | 7 | print(aaa) 8 | shuffle(aaa) 9 | 10 | 11 | values = ','.join(str(v) for v in aaa) 12 | 13 | 14 | print(values) 15 | 16 | -------------------------------------------------------------------------------- /uwsgi.ini: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | [uwsgi] 5 | socket = 127.0.0.1:8000 6 | chdir = /home/learn/python/website/wave_club_shop/ 7 | wsgi-file = wave_club_shop/wsgi.py 8 | processes = 12 9 | threads = 2 10 | virtualenv = /home/learn/.virtualenvs/githubgoods 11 | logto = mylog.log 12 | #pythonpath = /usr/local/python3/lib/python3.6/site-packages 13 | -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/js/app.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 'use strict'; 3 | 4 | $(function() { 5 | var $fullText = $('.admin-fullText'); 6 | $('#admin-fullscreen').on('click', function() { 7 | $.AMUI.fullscreen.toggle(); 8 | }); 9 | 10 | $(document).on($.AMUI.fullscreen.raw.fullscreenchange, function() { 11 | $fullText.text($.AMUI.fullscreen.isFullscreen ? '退出全屏' : '开启全屏'); 12 | }); 13 | }); 14 | })(jQuery); 15 | -------------------------------------------------------------------------------- /apps/apiData/custom_error.py: -------------------------------------------------------------------------------- 1 | from django.http import JsonResponse 2 | 3 | from code import Code 4 | 5 | 6 | class CustomError(Exception): 7 | def __init__(self, code=Code.COMMON_ERROR.value, error='系统繁忙,请稍后再试'): 8 | super(CustomError, self).__init__() 9 | self.code = code 10 | self.error = error 11 | 12 | def to_dict(self): 13 | return JsonResponse({ 14 | 'code': self.code, 15 | 'error': self.error 16 | }) -------------------------------------------------------------------------------- /wave_club_shop/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for wave_club_shop project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/2.1/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'wave_club_shop.settings') 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == '__main__': 6 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'wave_club_shop.settings') 7 | try: 8 | from django.core.management import execute_from_command_line 9 | except ImportError as exc: 10 | raise ImportError( 11 | "Couldn't import Django. Are you sure it's installed and " 12 | "available on your PYTHONPATH environment variable? Did you " 13 | "forget to activate a virtual environment?" 14 | ) from exc 15 | execute_from_command_line(sys.argv) 16 | -------------------------------------------------------------------------------- /apps/users/forms.py: -------------------------------------------------------------------------------- 1 | from django import forms 2 | from captcha.fields import CaptchaField 3 | 4 | class LoginForm(forms.Form): 5 | username = forms.CharField(required=True) 6 | password = forms.CharField(required=True) 7 | 8 | 9 | class RegisterForm(forms.Form): 10 | 11 | username = forms.CharField(required=True, min_length = 6, max_length = 40) 12 | password = forms.CharField(required=True, min_length = 6, max_length = 40) 13 | email = forms.CharField(required=True, min_length = 6, max_length = 60) 14 | code = forms.CharField(required=True, min_length = 6, max_length = 20) 15 | captcha = CaptchaField() 16 | 17 | -------------------------------------------------------------------------------- /static/js/form-validation.js: -------------------------------------------------------------------------------- 1 | // Example starter JavaScript for disabling form submissions if there are invalid fields 2 | (function () { 3 | 'use strict' 4 | 5 | window.addEventListener('load', function () { 6 | // Fetch all the forms we want to apply custom Bootstrap validation styles to 7 | var forms = document.getElementsByClassName('needs-validation') 8 | 9 | // Loop over them and prevent submission 10 | Array.prototype.filter.call(forms, function (form) { 11 | form.addEventListener('submit', function (event) { 12 | if (form.checkValidity() === false) { 13 | event.preventDefault() 14 | event.stopPropagation() 15 | } 16 | form.classList.add('was-validated') 17 | }, false) 18 | }) 19 | }, false) 20 | }()) 21 | -------------------------------------------------------------------------------- /apps/apiData/result.py: -------------------------------------------------------------------------------- 1 | from django.http import JsonResponse 2 | from apiData.code import Code 3 | 4 | 5 | class Result(object): 6 | def __init__(self, code, message=None, data=None): 7 | self.code = code 8 | self.message = message 9 | self.data = data 10 | 11 | 12 | @staticmethod 13 | def success(data=None): 14 | return Result(Code.OK.value, data=data).to_dict() 15 | 16 | @staticmethod 17 | def error(code=Code.COMMON_ERROR.value, message=None): 18 | return Result(code, message).to_dict() 19 | 20 | def to_dict(self): 21 | result = {} 22 | 23 | if self.code is not None: 24 | result['code'] = self.code 25 | 26 | if self.message is not None: 27 | result['message'] = self.message 28 | 29 | if self.data is not None: 30 | result['data'] = self.data 31 | 32 | return JsonResponse(result) -------------------------------------------------------------------------------- /static/css/lostyle.css: -------------------------------------------------------------------------------- 1 | .item-pic,.item-info{float:left;margin-right:10px ;} 2 | .package-title{padding-left:20px ;padding-top: 10px;margin:0px auto;margin-top:10px ;max-width: 900px;} 3 | .package-status {padding: 18px 0px 0px;margin:0px auto;margin-bottom:10px ;max-width: 900px;} 4 | 5 | .status-list {margin-left:15px ;font-size: 12px;} 6 | .status-list li{border-bottom: 1px #e5e5e5 dotted;padding: 10px 10px;} 7 | .status-list li .text,.item-info .log-status{font-size:15px ;} 8 | .item-info p{margin-bottom: 5px ;} 9 | .week{visibility: hidden;} 10 | .status-list li.first{border:none ;} 11 | 12 | 13 | @media only screen and (min-width:640px) 14 | { 15 | .status-list {margin: -9px 0px 0px 12px;font-size: 12px;} 16 | .week{visibility:visible;} 17 | .hidden {visibility: hidden;} 18 | .time-list{display: inline;} 19 | .status-list li{border: none;position: relative;font-size:14px ;} 20 | .status-list li p.text{position: absolute;left:180px;font-size:14px ;} 21 | 22 | } -------------------------------------------------------------------------------- /apps/users/models.py: -------------------------------------------------------------------------------- 1 | from datetime import datetime 2 | 3 | from django.db import models 4 | from django.contrib.auth.models import AbstractUser 5 | 6 | # Create your models here. 7 | 8 | 9 | class UserProfile(AbstractUser): 10 | name = models.CharField(max_length=30, blank=True, null=True, verbose_name="姓名") 11 | 12 | def __str__(self): 13 | return self.name 14 | 15 | class Meta: 16 | verbose_name="用户信息" 17 | verbose_name_plural="用户信息" 18 | 19 | 20 | 21 | class EmailVerifyRecord(models.Model): 22 | code = models.CharField(max_length=20, verbose_name=u"验证码") 23 | email = models.EmailField(max_length=50, verbose_name=u"邮箱") 24 | send_type = models.CharField(verbose_name=u"验证码类型", choices=(("register",u"注册"),("forget",u"找回密码"), ("update_email",u"修改邮箱")), max_length=30) 25 | send_time = models.DateTimeField(verbose_name=u"发送时间", default=datetime.now) 26 | 27 | class Meta: 28 | verbose_name = u"邮箱验证码" 29 | verbose_name_plural = verbose_name 30 | 31 | def __str__(self): 32 | return '{0}({1})'.format(self.code, self.email) 33 | -------------------------------------------------------------------------------- /apps/users/migrations/0002_emailverifyrecord.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0 on 2019-04-11 17:16 2 | 3 | import datetime 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('users', '0001_initial'), 11 | ] 12 | 13 | operations = [ 14 | migrations.CreateModel( 15 | name='EmailVerifyRecord', 16 | fields=[ 17 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 18 | ('code', models.CharField(max_length=20, verbose_name='验证码')), 19 | ('email', models.EmailField(max_length=50, verbose_name='邮箱')), 20 | ('send_type', models.CharField(choices=[('register', '注册'), ('forget', '找回密码'), ('update_email', '修改邮箱')], max_length=30, verbose_name='验证码类型')), 21 | ('send_time', models.DateTimeField(default=datetime.datetime.now, verbose_name='发送时间')), 22 | ], 23 | options={ 24 | 'verbose_name': '邮箱验证码', 25 | 'verbose_name_plural': '邮箱验证码', 26 | }, 27 | ), 28 | ] 29 | -------------------------------------------------------------------------------- /static/css/bilstyle.css: -------------------------------------------------------------------------------- 1 | /*交易时间*/ 2 | .order-time{padding:10px 5px ;} 3 | .form-label{width: 80px;float: left;margin-top:10px;} 4 | .am-selected-list li{font-size:12px ;} 5 | 6 | tbody tr{position: relative;height:70px;} 7 | td{border-bottom: 1px solid #eee;padding:25px 5px 0px;vertical-align:top} 8 | td.time {position: absolute;padding:5px 5px;left: 0px;border-bottom:none ;} 9 | td.time p{display: inline-block;} 10 | 11 | td.img,th.memo{width:15%;text-align: center;} 12 | td.img img{width:100%;max-width:50px ;border-radius: 50px;} 13 | td.title.name{width:60%;} 14 | td.amount,th.amount{width: 15%;} 15 | td.operation,th.action{width:10% ;} 16 | 17 | thead th{display: none;} 18 | @media only screen and (min-width: 640px){ 19 | .order-time{padding:15px 15px ;} 20 | tbody tr{height:60px;} 21 | thead th{display:table-cell;} 22 | td{padding:10px 0px;} 23 | td.time{position: static;padding:10px 0px;border-bottom: 1px solid #eee;width: 15%;} 24 | td.time p{display:block;} 25 | td.title.name,th.name{width:45%;} 26 | td.operation,th.action{width:15% ;} 27 | } 28 | 29 | @media only screen and (min-width:1025px){ 30 | td.title.name,th.name{width:40%;} 31 | td.operation,th.action{width:20%;} 32 | 33 | } 34 | -------------------------------------------------------------------------------- /static/basic/js/quick_links.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | 3 | jQuery(function($){ 4 | 5 | //鼠标悬停信息 6 | 7 | $("#wrap .item").mouseenter(function(){ 8 | $(this).children(".mp_tooltip").animate({left:-92,queue:true}); 9 | $(this).children(".mp_tooltip").css("visibility","visible"); 10 | $(this).children(".ibar_login_box").css("display","block"); 11 | }); 12 | $("#wrap .item").mouseleave(function(){ 13 | $(this).children(".mp_tooltip").css("visibility","hidden"); 14 | $(this).children(".mp_tooltip").animate({left:-121,queue:true}); 15 | $(this).children(".ibar_login_box").css("display","none"); 16 | }); 17 | $(".quick_toggle li").mouseover(function(){ 18 | $(this).children(".mp_qrcode").show(); 19 | $(this).children(".mp_tooltip").animate({left:-92,queue:true}); 20 | $(this).children(".mp_tooltip").css("visibility","visible"); 21 | }); 22 | $(".quick_toggle li").mouseleave(function(){ 23 | $(this).children(".mp_qrcode").hide(); 24 | $(this).children(".mp_tooltip").css("visibility","hidden"); 25 | $(this).children(".mp_tooltip").animate({left:-121,queue:true}); 26 | }); 27 | 28 | }) 29 | $(".return_top").click(function(){ 30 | ds.scrollTo(0, 0); 31 | hideReturnTop();}) 32 | })(); -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | asn1crypto==0.24.0 2 | astroid==2.0.4 3 | attrs==19.1.0 4 | Automat==0.7.0 5 | autopep8==1.4.3 6 | beautifulsoup4==4.7.1 7 | certifi==2018.4.16 8 | cffi==1.12.2 9 | chardet==3.0.4 10 | Click==7.0 11 | constantly==15.1.0 12 | cryptography==2.6.1 13 | cssselect==1.0.3 14 | Cython==0.27.3 15 | Django==2.0 16 | django-filter==2.1.0 17 | django-ranged-response==0.2.0 18 | django-simple-captcha==0.5.10 19 | djangorestframework==3.9.2 20 | Flask==1.0.2 21 | hyperlink==18.0.0 22 | idna==2.7 23 | incremental==17.5.0 24 | isort==4.3.4 25 | itsdangerous==1.1.0 26 | Jinja2==2.10 27 | lazy-object-proxy==1.3.1 28 | lxml==4.3.3 29 | Markdown==3.1 30 | MarkupSafe==1.1.1 31 | mccabe==0.6.1 32 | numpy==1.13.3 33 | parsel==1.5.1 34 | Pillow==6.0.0 35 | pyasn1==0.4.5 36 | pyasn1-modules==0.2.4 37 | pycodestyle==2.5.0 38 | pycparser==2.19 39 | pydicom==1.2.2 40 | PyDispatcher==2.0.5 41 | PyHamcrest==1.9.0 42 | pylint==2.1.1 43 | PyMySQL==0.9.3 44 | pyOpenSSL==19.0.0 45 | pystan==2.17.0.0 46 | pytz==2017.3 47 | queuelib==1.5.0 48 | redis==3.2.1 49 | requests==2.19.1 50 | Scrapy==1.6.0 51 | service-identity==18.1.0 52 | six==1.11.0 53 | soupsieve==1.9 54 | Twisted==18.9.0 55 | typed-ast==1.1.0 56 | urllib3==1.23 57 | virtualenv==15.1.0 58 | w3lib==1.20.0 59 | Werkzeug==0.15.2 60 | wrapt==1.10.11 61 | zope.interface==4.6.0 62 | -------------------------------------------------------------------------------- /static/css/sustyle.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* CSS Document */ 3 | h2, #success-pay h2 {font-size: 14px;height: 40px;line-height: 40px;margin-top:0px;} 4 | .successInfo {display: inline-block;margin-left: -46px;padding:5px 0px;max-width: 547px;} 5 | .successInfo em{color:#f00; font-weight:700; margin-left:5px;} 6 | .take-delivery li {line-height: 28px;height:28px;} 7 | 8 | .status .option { margin: 13px 0 25px 0px;} 9 | .status .option .info {margin-right: 10px;} 10 | 11 | .successInfo a span{font-size: 13px; margin: 0 10px 0 10px;color: #f00;} 12 | .take-delivery {background: url(../images/T13iv.XiFdXXa94Hfd-32-32.png) no-repeat scroll 10px 30px transparent;padding: 27px 0 27px 60px;color: #333; 13 | width:100% ;max-width:1000px;margin:0px auto;margin-top: 50px;} 14 | 15 | .successInfo li{font-size:18px;} 16 | .footer{max-width:1000px; margin:0px auto; margin-top:10px;} 17 | .user-info p{ font-size:14px; padding:3px 0px;margin:0px 0px ;} 18 | 19 | @media only screen and (min-width:640px) 20 | { 21 | .take-delivery{background: url(../images/T13iv.XiFdXXa94Hfd-32-32.png) no-repeat scroll 30px 30px transparent;padding: 27px 0 27px 76px;border: 1px solid #e5e5e5;margin-top: 10px;border: none;} 22 | .user-info{border:1px solid #F00} 23 | .successInfo {padding: 0 65px 0 56px;} 24 | .user-info p{ font-size:14px; padding:10px;} 25 | 26 | } 27 | 28 | 29 | -------------------------------------------------------------------------------- /static/css/newstyle.css: -------------------------------------------------------------------------------- 1 | 2 | /*新鲜事*/ 3 | .user-news .s-msg-item {display: block;width:100%;background: #fff;} 4 | .s-msg-item {border: 1px solid #E4EAEE;position: relative; width:100%;} 5 | .i-msg-downup-wrap {overflow: hidden;position: relative;margin-top:30px} 6 | .s-msg-temp img {width:100%;} 7 | .am-nav-tabs > li > a {text-align: center;} 8 | /*标题*/ 9 | .s-name {font-size: 14px;position: absolute;top:7px;left:7px;} 10 | .i-btn-forkout{position:absolute; top:7px; right:7px;} 11 | .s-main-content{font-size: 14px;font-weight:600 ;padding:10px 5px;} 12 | .s-row.s-main-content{border-top:1px solid #E4EAEE ;} 13 | .s-row.s-main-content i{float: right;} 14 | .goods-date{margin-bottom:10px ;} 15 | /*物流*/ 16 | .item{width:100%;overflow: hidden;padding:10px 0px;} 17 | .item-pic {width: 80px;height: 80px;border: 1px solid #EEE;float: left;overflow: hidden;margin:5px;} 18 | .item-info{margin-left:90px;height:90px;overflow: hidden;padding:5px 0px ;font-size: 14px ;line-height:20px ;} 19 | 20 | 21 | .item-info .item-comment{height:60px;overflow: hidden;} 22 | 23 | 24 | @media only screen and (min-width:640px) 25 | { 26 | .user-news .s-msg-item {display: block;width:50%;float: left;} 27 | } 28 | 29 | 30 | 31 | @media only screen and (min-width:1025px) 32 | { 33 | .user-news .s-msg-item {display: block;width:33.33%;} 34 | } 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /wave_club_shop/urls.py: -------------------------------------------------------------------------------- 1 | """wave_club_shop URL Configuration 2 | 3 | The `urlpatterns` list routes URLs to views. For more information please see: 4 | https://docs.djangoproject.com/en/2.1/topics/http/urls/ 5 | Examples: 6 | Function views 7 | 1. Add an import: from my_app import views 8 | 2. Add a URL to urlpatterns: path('', views.home, name='home') 9 | Class-based views 10 | 1. Add an import: from other_app.views import Home 11 | 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') 12 | Including another URLconf 13 | 1. Import the include() function: from django.urls import include, path 14 | 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) 15 | """ 16 | from django.contrib import admin 17 | from django.urls import path, include 18 | from django.views.generic import TemplateView 19 | from users.views import LoginView, RegisterView, SendEmailView 20 | from goods.views import GoodsView, PriceView, GoodsListView 21 | 22 | urlpatterns = [ 23 | path('', LoginView.as_view(), name='login'), 24 | path('admin/', admin.site.urls), 25 | path('buy/', GoodsView.as_view(), name='buy'), 26 | path('price/', PriceView.as_view(), name='price'), 27 | path('goodsList/', GoodsListView.as_view(), name='goodsList'), 28 | path('login/', LoginView.as_view(), name='login'), 29 | path('register/', RegisterView.as_view(), name='register'), 30 | path('send_email/', SendEmailView.as_view(), name='send_email'), 31 | path('captcha/', include('captcha.urls')), 32 | ] 33 | -------------------------------------------------------------------------------- /static/css/bostyle.css: -------------------------------------------------------------------------------- 1 | .am-margin {margin:0 auto;} 2 | 3 | .cart-table-th .th,.cart-table-th .td{float:left;} 4 | .order-top,.cart-table-th .th{display: none;} 5 | .item-list{position: relative;overflow: hidden;background:#F5F5F5 ;padding:10px 10px 10px 0; margin-top:10px ;} 6 | 7 | .order-top{padding:10px 10px;} 8 | /*红包信息*/ 9 | .td-from{width:70%;border-right:1px #d5d5d5 dotted ;} 10 | .td-from .item-img{width:65px;float: left;} 11 | .item-info{margin-top:15px;font-size:14px ;} 12 | .info-little span{display:none} 13 | .item-info .info-little{position: absolute;left:75% ;top:30px;text-align: center;} 14 | .td-remainderprice{position: absolute;left:75%;top:50px;font-size: 10px;} 15 | .td-term{position: absolute;left:65px;bottom:20px ;font-size:10px;} 16 | 17 | .td-usestatus{position:absolute;right:0px;top:0px;width:20%;} 18 | .td-usestatus p{display:none;} 19 | .td-usestatus img{width:100%;} 20 | .am-tabs-d2 .am-tabs-nav li{text-align: center;} 21 | @media only screen and (min-width:640px) 22 | { 23 | .td-from{border-right:none;} 24 | /*布局更改*/ 25 | .cart-table-th .th,.cart-table-th .td{width:15%;text-align: center;} 26 | .td.td-from,.th.th-from{border-right:none;width:55%;} 27 | .order-top,.cart-table-th .th,.td-usestatus {display:block;} 28 | .item-term span,.td-remainderprice span,.td-usestatus span{display: none;} 29 | .info-little span,.td-usestatus p{display:inline-block} 30 | 31 | 32 | .item-info,.item-info .info-little{position: static;text-align: left;} 33 | .td-remainderprice,.td-term,.td-usestatus {position: static;margin-top:15px ;font-size: 14px;} 34 | .th.th-from{text-align: left;padding-left:65px;} 35 | 36 | 37 | } 38 | 39 | @media only screen and (min-width:1025px) 40 | { 41 | 42 | 43 | } -------------------------------------------------------------------------------- /apps/utils/email_send.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from random import Random 4 | from django.core.mail import send_mail 5 | 6 | from users.models import EmailVerifyRecord 7 | from wave_club_shop.settings import EMAIL_FROM 8 | 9 | 10 | def random_str(randomlength=8): 11 | str = '' 12 | chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789' 13 | length = len(chars) - 1 14 | random = Random() 15 | for i in range(randomlength): 16 | str+=chars[random.randint(0, length)] 17 | return str 18 | 19 | 20 | def send_register_email(email, send_type="register"): 21 | email_record = EmailVerifyRecord() 22 | if send_type == "update_email": 23 | code = random_str(4) 24 | else: 25 | code = random_str(12) 26 | email_record.code = code 27 | email_record.email = email 28 | email_record.send_type = send_type 29 | email_record.save() 30 | 31 | email_title = "" 32 | email_body = "" 33 | 34 | if send_type == "register": 35 | email_title = "浪潮科技邮箱验证码" 36 | email_body = "您的验证码是: {0}".format(code) 37 | 38 | send_status = send_mail(email_title, email_body, EMAIL_FROM, [email]) 39 | if send_status: 40 | pass 41 | elif send_type == "forget": 42 | email_title = "浪潮科技网注册密码重置链接" 43 | email_body = "请点击下面的链接重置密码: http://106.14.185.196/reset/{0}".format(code) 44 | 45 | send_status = send_mail(email_title, email_body, EMAIL_FROM, [email]) 46 | if send_status: 47 | pass 48 | elif send_type == "update_email": 49 | email_title = "浪潮科技邮箱修改验证码" 50 | email_body = "你的邮箱验证码为: {0}".format(code) 51 | 52 | send_status = send_mail(email_title, email_body, EMAIL_FROM, [email]) 53 | if send_status: 54 | pass 55 | 56 | 57 | -------------------------------------------------------------------------------- /apps/goods/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render, redirect 2 | from django.views.generic.base import View 3 | 4 | from random import shuffle 5 | 6 | # Create your views here. 7 | from .models import Goods 8 | 9 | 10 | class GoodsView(View): 11 | 12 | def post(self, request): 13 | userid = request.session.get('_auth_user_id') 14 | 15 | def getTotalStar(stars_list): 16 | return 1 17 | 18 | 19 | datas_list = list(range(1700)) 20 | shuffle(datas_list) 21 | order_data = ','.join(str(v) for v in datas_list) 22 | 23 | goods = Goods() 24 | goods.userId = userid 25 | goods.name = request.POST.get('nick_name', '') 26 | goods.contact_action = request.POST.get('contact_action', '') 27 | goods.project_url = request.POST.get('project_url', '') 28 | goods.star_num = request.POST.get('star_num', 0) 29 | goods.follow_num = request.POST.get('follow_num', 0) 30 | goods.fork_num = request.POST.get('fork_num', 0) 31 | goods.watch_num = request.POST.get('watch_num', 0) 32 | goods.order_price = int(goods.star_num) * 1 + int(goods.follow_num) * 2 + int(goods.fork_num) * 2 + int(goods.watch_num) * 3 33 | goods.order_data = order_data 34 | 35 | 36 | goods.start_point = getTotalStar(1) 37 | 38 | 39 | goods.save() 40 | 41 | return redirect('/goodsList/') 42 | 43 | def get(self, request): 44 | return render(request, 'buy.html', {}) 45 | 46 | 47 | class PriceView(View): 48 | 49 | def get(self, request): 50 | return render(request, 'price_detail.html', {}) 51 | 52 | class GoodsListView(View): 53 | 54 | def get(self, request): 55 | userid = request.session.get('_auth_user_id') 56 | 57 | goods_list = Goods.objects.filter(userId=userid) 58 | print(goods_list) 59 | return render(request, 'goods_list.html', { 60 | 'goods_list': goods_list 61 | }) 62 | -------------------------------------------------------------------------------- /apps/goods/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | from datetime import datetime 3 | 4 | # Create your models here. 5 | from users.models import UserProfile 6 | 7 | class Goods(models.Model): 8 | 9 | # URLField 10 | # class URLField([verify_exists=True, max_length=200, **options])¶ 11 | # 保存 URL 的 CharField 。它有一个额外的可选参数: 12 | 13 | # URLField.verify_exists¶ 14 | # 如果为 True (默认值),Django 在保存对象时会检测该 URL 是否可访问(比如,网址可以正常访问,不返回404错误)。值得注意的是,如果你使用的是一个单线程开发服务器,那么验证网址会挂起当前线程。当然,对于生产用的多线程服务器来说,这就不是一个问题了。 15 | # Django 管理后台使用 (一个单行输入框) 表示该字段。 16 | 17 | # 和所有 CharField 子类一样,URLField 接受可选的 max_length 参数,该参数默认值是200。 18 | 19 | userId = models.CharField(max_length=50) 20 | contact_action = models.CharField(max_length=100, verbose_name="联系方式") 21 | project_url = models.URLField(max_length=200, verbose_name="项目地址") 22 | star_num = models.IntegerField(default=0, blank=True, null=True, verbose_name="star的个数") 23 | follow_num = models.IntegerField(default=0, blank=True, null=True,verbose_name="follow的个数") 24 | fork_num = models.IntegerField(default=0, blank=True, null=True,verbose_name="fork的个数") 25 | watch_num = models.IntegerField(default=0, blank=True, null=True,verbose_name="watch的个数") 26 | start_point = models.IntegerField(default=0, blank=True, null=True,verbose_name="起始位置") 27 | is_flag = models.BooleanField(default=False, verbose_name="是否执行过" ) 28 | add_time = models.DateTimeField(auto_now_add=True, blank=True, null=True) 29 | update_time = models.DateTimeField(auto_now=True, blank=True, null=True) 30 | order_price = models.IntegerField(default=0, blank=True, null=True,verbose_name="订单价格") 31 | order_data = models.TextField(default='', blank=True, null=True,verbose_name="数据排序") 32 | # True 已支付 33 | order_payed = models.BooleanField(default=False, verbose_name="支付状态" ) 34 | 35 | def __str__(self): 36 | return self.contact_action 37 | 38 | class Meta: 39 | verbose_name="商品信息表" 40 | verbose_name_plural="商品信息表" 41 | ordering=['star_num', 'fork_num', 'follow_num'] 42 | -------------------------------------------------------------------------------- /apps/goods/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0 on 2019-04-06 09:12 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | initial = True 9 | 10 | dependencies = [ 11 | ] 12 | 13 | operations = [ 14 | migrations.CreateModel( 15 | name='Goods', 16 | fields=[ 17 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 18 | ('userId', models.CharField(max_length=50)), 19 | ('contact_action', models.CharField(max_length=100, verbose_name='联系方式')), 20 | ('project_url', models.URLField(verbose_name='项目地址')), 21 | ('star_num', models.IntegerField(blank=True, default=0, null=True, verbose_name='star的个数')), 22 | ('follow_num', models.IntegerField(blank=True, default=0, null=True, verbose_name='follow的个数')), 23 | ('fork_num', models.IntegerField(blank=True, default=0, null=True, verbose_name='fork的个数')), 24 | ('watch_num', models.IntegerField(blank=True, default=0, null=True, verbose_name='watch的个数')), 25 | ('start_point', models.IntegerField(blank=True, default=0, null=True, verbose_name='起始位置')), 26 | ('is_flag', models.BooleanField(default=False, verbose_name='是否执行过')), 27 | ('add_time', models.DateTimeField(auto_now_add=True, null=True)), 28 | ('update_time', models.DateTimeField(auto_now=True, null=True)), 29 | ('order_price', models.IntegerField(blank=True, default=0, null=True, verbose_name='订单价格')), 30 | ('order_data', models.TextField(blank=True, default='', null=True, verbose_name='数据排序')), 31 | ('order_payed', models.BooleanField(default=False, verbose_name='支付状态')), 32 | ], 33 | options={ 34 | 'verbose_name': '商品信息表', 35 | 'verbose_name_plural': '商品信息表', 36 | 'ordering': ['star_num', 'fork_num', 'follow_num'], 37 | }, 38 | ), 39 | ] 40 | -------------------------------------------------------------------------------- /static/css/cmstyle.css: -------------------------------------------------------------------------------- 1 | 2 | .user-comment .am-margin {margin: 0;} 3 | .am-nav-tabs > li > a{padding:0px 2px; margin:0px 0px ;text-align: center;} 4 | .am-tabs-bd .am-tab-panel {padding:0px 0px 15px ;} 5 | 6 | .td-item{overflow: hidden;float: left;} 7 | .item-pic {width:80px;height:80px;border: 1px solid #EEE;float: left;overflow: hidden;margin-left: 3px;} 8 | .item-pic img{width:100%;} 9 | .td-comment {margin:0px 0px 0px 85px;padding-right:5px;} 10 | /*标题*/ 11 | .item-opinion{width:30px;float: left;color: #E0690C;font-size: 14px;} 12 | .item-name{ margin-left:35px ;} 13 | .item-title{margin:5px 0px;font-size:14px;} 14 | 15 | .item-basic-info{overflow: hidden;text-overflow: ellipsis;white-space: nowrap;font-size: 14px;} 16 | .item-comment{font-size:13px ;line-height: 21px; text-indent: 2em} 17 | /*商品信息*/ 18 | .item-info{font-size:10px ;color: #9C9C9C; margin-top:5px ;overflow: hidden;} 19 | .info-little{float: left;max-width:180px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;font-size: 12px;} 20 | .info-time{float: right;margin-right: 5px;font-size: 12px;} 21 | .comment-top{display: none;margin:10px 0px ; overflow: hidden;} 22 | 23 | .filePic {width:100px;margin:10px 0px ;} 24 | .filePic img{width:100%;} 25 | 26 | @media only screen and (min-width:1025px) 27 | { 28 | .am-tabs-bd .am-tab-panel {padding:10px 10px 15px ;} 29 | .comment-top{display: block;} 30 | .comment-top .th{float: left;width:50% ; text-align: center;} 31 | /*标题*/ 32 | .item-title{float:right;width:30%; margin-top: 0px;margin-right:18%;} 33 | .item-name{margin-left: 5px;} 34 | .item-opinion{display:none ;} 35 | .item-basic-info{overflow: hidden;text-overflow: ellipsis;white-space:normal;font-size:14px ;color: #005EA7;} 36 | 37 | /*商品信息*/ 38 | .td.td-comment{position: relative;overflow: hidden;min-height:65px ;} 39 | .item-info .info-little{position: absolute;right:0;top:0px;width:18%; white-space:normal; font-size: 12px;} 40 | .info-little span {display: block;} 41 | 42 | .item-info .info-time{position: absolute;left:30px;bottom:0px;} 43 | 44 | 45 | 46 | /*评价内容*/ 47 | .item-comment{float:left;width:50%;padding-bottom:20px;} 48 | 49 | 50 | 51 | } 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // 使用 IntelliSense 了解相关属性。 3 | // 悬停以查看现有属性的描述。 4 | // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "name": "Python: Current File (Integrated Terminal)", 9 | "type": "python", 10 | "request": "launch", 11 | "program": "${file}", 12 | "console": "integratedTerminal" 13 | }, 14 | { 15 | "name": "Python: Remote Attach", 16 | "type": "python", 17 | "request": "attach", 18 | "port": 5678, 19 | "host": "localhost", 20 | "pathMappings": [ 21 | { 22 | "localRoot": "${workspaceFolder}", 23 | "remoteRoot": "." 24 | } 25 | ] 26 | }, 27 | { 28 | "name": "Python: Module", 29 | "type": "python", 30 | "request": "launch", 31 | "module": "enter-your-module-name-here", 32 | "console": "integratedTerminal" 33 | }, 34 | { 35 | "name": "Python: Django", 36 | "type": "python", 37 | "request": "launch", 38 | "program": "${workspaceFolder}/manage.py", 39 | "console": "integratedTerminal", 40 | "args": [ 41 | "runserver", 42 | "--noreload", 43 | "--nothreading" 44 | ], 45 | "django": true 46 | }, 47 | { 48 | "name": "Python: Flask", 49 | "type": "python", 50 | "request": "launch", 51 | "module": "flask", 52 | "env": { 53 | "FLASK_APP": "app.py" 54 | }, 55 | "args": [ 56 | "run", 57 | "--no-debugger", 58 | "--no-reload" 59 | ], 60 | "jinja": true 61 | }, 62 | { 63 | "name": "Python: Current File (External Terminal)", 64 | "type": "python", 65 | "request": "launch", 66 | "program": "${file}", 67 | "console": "externalTerminal" 68 | } 69 | ] 70 | } -------------------------------------------------------------------------------- /static/css/stepstyle.css: -------------------------------------------------------------------------------- 1 | .m-progress {margin: 0 auto 25px;height: 60px;width: 80%;max-width: 700px;margin-top:60px ;} 2 | .m-progress-list{height: 66px;font-size: 0;text-align: justify;} 3 | /*步骤背景*/ 4 | .m-progress-list .step {display: inline-block;width: 80px;text-align: center;color: #999;letter-spacing: -5px;} 5 | .m-progress-list .stage-name {padding-top: 10px;font-size: 12px;line-height: 14px; 6 | letter-spacing: normal;word-spacing: normal;} 7 | .u-progress-stage-bg {position: relative;display: inline-block;background-image: url(../images/sprite.png); 8 | background-position: -45px -135px;width: 29px;height: 29px;} 9 | /*变换的背景*/ 10 | .u-stage-icon-inner .bg {position: absolute;left: 0px;top: 0px;} 11 | .step-1 .u-stage-icon-inner .bg {background-image: url(../images/sprite.png);background-position: -79px -135px;width: 19px;height: 19px;} 12 | .step-2 .u-stage-icon-inner .bg {opacity:0;background-image: url(../images/sprite.png);background-position: -103px -135px;width: 19px;height: 19px;} 13 | 14 | .u-stage-icon-inner {position: relative;z-index: 20;display: inline-block;width: 19px;height: 19px;line-height: 19px; 15 | vertical-align: top;margin-top: 5px;margin-left: -24px;color: #b5b5b5;font-size: 12px;letter-spacing: normal;word-spacing: normal;} 16 | .u-progress-placeholder {display: inline-block;width: 100%;height: 0;font-size: 0;line-height: 0;overflow: hidden;} 17 | 18 | 19 | .u-progress-bar {margin: -56px 40px 0;background-color: #dcdcdc;height: 5px;font-size: 0;padding: 2px 0;} 20 | .u-progress-bar-inner {position: relative;z-index: 10;height: 5px;width: 0;transition: width 1s .5s linear;background-color: #23c279;} 21 | 22 | /*内容*/ 23 | .am-form{margin: 0px auto;width:90%;max-width: 600px;margin-bottom:20px ;} 24 | .am-form-group.bind label{padding-top: 0;} 25 | .am-form-group.bind span,.am-selected-list {font-size:14px;} 26 | .am-form-group.code {position: relative;} 27 | .am-form-group.code .am-form-content {margin-right:80px;} 28 | .am-form-group.code a.btn{position:absolute;right: 0;top: 0;} 29 | .am-form-group.select .am-selected {width:100% ;font-size: 14px;} 30 | .am-form-group.select .am-selected-status{color:#b5b5b5;} 31 | .info-btn{text-align: center;padding-bottom: 10px;} 32 | 33 | 34 | 35 | @media only screen and (min-width: 640px){ 36 | .am-form-label { width:70px; } 37 | .am-form{width:70%;} 38 | 39 | } 40 | 41 | -------------------------------------------------------------------------------- /static/css/appstyle.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* CSS Document */ 3 | .comment-main{padding-bottom:10px ;} 4 | .item-pic {width: 90px;height: 90px;border: 1px solid #EEE;float: left;overflow: hidden; margin-left:5px;margin-right: 10px;} 5 | textarea {width:100%;margin:10px 5px;min-height:80px;border: 0px none;resize: none;outline: 0px none;overflow: hidden;} 6 | .filePic {width:100px;padding:10px 10px;position: relative;overflow: hidden;} 7 | .filePic .inputPic {cursor: pointer;opacity: 0;width: 100%;height: 100%;position: absolute;top: 0;left: 0;} 8 | .filePic span{display: none;} 9 | 10 | img{width:100% ;} 11 | .item-opinion{border-top: 1px solid #F5F8FA;width: 100%;overflow: hidden;padding:10px 0px ;} 12 | .item-opinion li{float:left;width: 33.33%;text-align: center;font-size:14px ;cursor: pointer;} 13 | .item-opinion li i{display:inline-block;width:16px;height:16px;margin-right: 5px;} 14 | .item-opinion li i.op1,.item-opinion li i.op2{background:url(../images/iconfont-evaluate.png);background-size:16px 16px;} 15 | .item-opinion li i.op3{background:url(../images/iconfont-bad.png);background-size:16px 16px;} 16 | 17 | .item-opinion li i.op1.active{background:url(../images/iconfont-good.png);background-size:16px 16px;} 18 | .item-opinion li i.op2.active{background:url(../images/iconfont-middle.png);background-size:16px 16px;} 19 | .item-opinion li i.op3.active{background:url(../images/iconfont-badon.png);background-size:16px 16px;} 20 | 21 | 22 | 23 | .info-btn{text-align: center;} 24 | 25 | 26 | 27 | @media only screen and (min-width: 640px){ 28 | 29 | /*多个商品评价*/ 30 | .comment-list{position: relative;margin:0px 5px ;padding-bottom:10px ;} 31 | .item-pic{width: 150px;height: auto;float: none;} 32 | .item-title{width:150px ;overflow: hidden;} 33 | .item-pay-logis{display: none;} 34 | .item-name p,.comment-list .info-little span{height: 18px;line-height: 18px;overflow: hidden;} 35 | .item-opinion{position: absolute;left:200px;top: 0px;right:0px;width: auto;max-width:600px ;} 36 | .item-comment{position: absolute;left:200px;top: 40px;right:0px;max-width:600px ;} 37 | textarea{min-height:120px ;border: 1px solid #F5F8FA;;padding:10px ;margin: 0px 0px;} 38 | .filePic{position: absolute;left:200px;bottom: 10px;width:120px;} 39 | .filePic span{display: block;cursor: pointer;} 40 | .filePic img{display: none;} 41 | .user-comment{max-width:1000px;margin:0px auto;} 42 | } 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /apps/users/templates/price_detail.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {% load staticfiles %} 5 | 6 | 7 | 8 | 9 | 10 | 11 | ☆价格说明-助力2019☆ 12 | 13 | 14 | 15 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | {% if request.user.is_authenticated %} 43 |
44 |
45 | 46 |

客服qq-1310525081

47 |

48 | 1.都是先star完, 你看号的质量,满意付款,长期合作,【先刷在给钱】,
49 | 2.客户的任何信息是绝对的保密
50 | 3. 全是【2010-2017】年一直【活跃的,大部分有头像】,
51 | 4.【有代码提交的高质量】账号。每个用户都生成一份唯一的排序,这些号每天从10000个项目池里面随机star,
52 | 5. 点完你的我还需要随机点1-6个左右其他的项目混淆
53 | 6.还有几千次提交的2010-2017年的账号出售
54 | 7.安全系数无懈可击,一切随机的, 有时候1个账号star需要等10000秒, 当然可以修改参数【自助加星不需要等待】>
55 | 8.高安全系数,高质量,采用高匿无重复IP ,从源头治理风险
56 | 57 | 【价格说明】:
58 | github star 1¥ 1个,fork 2¥ 1个, follow 2 ¥1个, watch 3 ¥1个 , 评论3¥1个, issue4¥1个,修改commits 小绿点显示200¥
59 | 60 |

61 |
62 | 63 | 64 | 70 |
71 | {% else %} 72 |

此操作需要先登录 点击登录

73 | 74 | {% endif %} 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /static/js/jquery.imagezoom.min.js: -------------------------------------------------------------------------------- 1 | (function($){$.fn.imagezoom=function(options){var settings={xzoom:450,yzoom:400,offset:10,position:"BTR",preload:1};if(options){$.extend(settings,options);} 2 | var noalt='';var self=this;$(this).bind("mouseenter",function(ev){var imageLeft=$(this).offset().left;var imageTop=$(this).offset().top;var imageWidth=$(this).get(0).offsetWidth;var imageHeight=$(this).get(0).offsetHeight;var boxLeft=$(this).parent().offset().left;var boxTop=$(this).parent().offset().top;var boxWidth=$(this).parent().width();var boxHeight=$(this).parent().height();noalt=$(this).attr("alt");var bigimage=$(this).attr("rel");$(this).attr("alt",'');if($("div.zoomDiv").get().length==0){$(document.body).append("
 
");} 3 | if(settings.position=="BTR"){if(boxLeft+boxWidth+settings.offset+settings.xzoom>screen.width){leftpos=boxLeft-settings.offset-settings.xzoom;}else{leftpos=boxLeft+boxWidth+settings.offset;}}else{leftpos=imageLeft-settings.xzoom-settings.offset;if(leftpos<0){leftpos=imageLeft+imageWidth+settings.offset;}} 4 | $("div.zoomDiv").css({top:boxTop,left:leftpos});$("div.zoomDiv").width(settings.xzoom);$("div.zoomDiv").height(settings.yzoom);$("div.zoomDiv").show();$(this).css('cursor','crosshair');$(document.body).mousemove(function(e){mouse=new MouseEvent(e);if(mouse.ximageLeft+imageWidth||mouse.yimageTop+imageHeight){mouseOutImage();return;} 5 | var bigwidth=$(".bigimg").get(0).offsetWidth;var bigheight=$(".bigimg").get(0).offsetHeight;var scaley='x';var scalex='y';if(isNaN(scalex)|isNaN(scaley)){var scalex=(bigwidth/imageWidth);var scaley=(bigheight/imageHeight);$("div.zoomMask").width((settings.xzoom)/scalex);$("div.zoomMask").height((settings.yzoom)/scaley);$("div.zoomMask").css('visibility','visible');} 6 | xpos=mouse.x-$("div.zoomMask").width()/2;ypos=mouse.y-$("div.zoomMask").height()/2;xposs=mouse.x-$("div.zoomMask").width()/2-imageLeft;yposs=mouse.y-$("div.zoomMask").height()/2-imageTop;xpos=(mouse.x-$("div.zoomMask").width()/2imageWidth+imageLeft)?(imageWidth+imageLeft-$("div.zoomMask").width()):xpos;ypos=(mouse.y-$("div.zoomMask").height()/2imageHeight+imageTop)?(imageHeight+imageTop-$("div.zoomMask").height()):ypos;$("div.zoomMask").css({top:ypos,left:xpos});$("div.zoomDiv").get(0).scrollLeft=xposs*scalex;$("div.zoomDiv").get(0).scrollTop=yposs*scaley;});});function mouseOutImage(){$(self).attr("alt",noalt);$(document.body).unbind("mousemove");$("div.zoomMask").remove();$("div.zoomDiv").remove();} 7 | count=0;if(settings.preload){$('body').append("");$(this).each(function(){var imagetopreload=$(this).attr("rel");var content=jQuery('div.jqPreload'+count+'').html();jQuery('div.jqPreload'+count+'').html(content+'');});}}})(jQuery);function MouseEvent(e){this.x=e.pageX;this.y=e.pageY;} -------------------------------------------------------------------------------- /apps/users/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.0 on 2019-04-06 09:12 2 | 3 | import django.contrib.auth.models 4 | import django.contrib.auth.validators 5 | from django.db import migrations, models 6 | import django.utils.timezone 7 | 8 | 9 | class Migration(migrations.Migration): 10 | 11 | initial = True 12 | 13 | dependencies = [ 14 | ('auth', '0009_alter_user_last_name_max_length'), 15 | ] 16 | 17 | operations = [ 18 | migrations.CreateModel( 19 | name='UserProfile', 20 | fields=[ 21 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 22 | ('password', models.CharField(max_length=128, verbose_name='password')), 23 | ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), 24 | ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), 25 | ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')), 26 | ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')), 27 | ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), 28 | ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')), 29 | ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), 30 | ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), 31 | ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), 32 | ('name', models.CharField(blank=True, max_length=30, null=True, verbose_name='姓名')), 33 | ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')), 34 | ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')), 35 | ], 36 | options={ 37 | 'verbose_name': '用户信息', 38 | 'verbose_name_plural': '用户信息', 39 | }, 40 | managers=[ 41 | ('objects', django.contrib.auth.models.UserManager()), 42 | ], 43 | ), 44 | ] 45 | -------------------------------------------------------------------------------- /static/js/list.js: -------------------------------------------------------------------------------- 1 | // JavaScript Document 2 | 3 | //商品规格选择 4 | $(function() { 5 | $(".theme-options").each(function() { 6 | var i = $(this); 7 | var p = i.find("ul>li"); 8 | p.click(function() { 9 | if (!!$(this).hasClass("selected")) { 10 | $(this).removeClass("selected"); 11 | 12 | } else { 13 | $(this).addClass("selected").siblings("li").removeClass("selected"); 14 | 15 | } 16 | 17 | }) 18 | }) 19 | 20 | }) 21 | 22 | 23 | //弹出规格选择 24 | $(document).ready(function() { 25 | var $ww = $(window).width(); 26 | if ($ww <1025) { 27 | $('.theme-login').click(function() { 28 | $(document.body).css("position", "fixed"); 29 | $('.theme-popover-mask').show(); 30 | $('.theme-popover').slideDown(200); 31 | 32 | }) 33 | 34 | $('.theme-poptit .close,.btn-op .close').click(function() { 35 | $(document.body).css("position", "static"); 36 | // 滚动条复位 37 | $('.theme-signin-left').scrollTop(0); 38 | 39 | $('.theme-popover-mask').hide(); 40 | $('.theme-popover').slideUp(200); 41 | }) 42 | 43 | } 44 | }) 45 | 46 | //导航固定 47 | $(document).ready(function() { 48 | var $ww = $(window).width(); 49 | var dv = $('ul.am-tabs-nav.am-nav.am-nav-tabs'), 50 | st; 51 | 52 | if ($ww < 623) { 53 | 54 | var tp =$ww+363; 55 | $(window).scroll(function() { 56 | st = Math.max(document.body.scrollTop || document.documentElement.scrollTop); 57 | if (st >= tp) { 58 | if (dv.css('position') != 'fixed') dv.css({ 59 | 'position': 'fixed', 60 | top: 53, 61 | 'z-index': 1000009 62 | }); 63 | 64 | } else if (dv.css('position') != 'static') dv.css({ 65 | 'position': 'static' 66 | }); 67 | }); 68 | //滚动条复位(需要减去固定导航的高度) 69 | 70 | $('.introduceMain ul li').click(function() { 71 | sts = tp; 72 | $(document).scrollTop(sts); 73 | }); 74 | } else { 75 | 76 | dv.attr('otop', dv.offset().top); //存储原来的距离顶部的距离 77 | var tp = parseInt(dv.attr('otop'))+36; 78 | $(window).scroll(function() { 79 | st = Math.max(document.body.scrollTop || document.documentElement.scrollTop); 80 | if (st >= tp) { 81 | 82 | if (dv.css('position') != 'fixed') dv.css({ 83 | 'position': 'fixed', 84 | top: 0, 85 | 'z-index': 998 86 | }); 87 | 88 | //滚动条复位 89 | $('.introduceMain ul li').click(function() { 90 | sts = tp-35; 91 | $(document).scrollTop(sts); 92 | }); 93 | 94 | } else if (dv.css('position') != 'static') dv.css({ 95 | 'position': 'static' 96 | }); 97 | }); 98 | 99 | 100 | 101 | } 102 | }); 103 | 104 | 105 | 106 | $(document).ready(function() { 107 | //优惠券 108 | $(".hot span").click(function() { 109 | $(".shopPromotion.gold .coupon").toggle(); 110 | }) 111 | 112 | 113 | 114 | 115 | //获得文本框对象 116 | var t = $("#text_box"); 117 | //初始化数量为1,并失效减 118 | $('#min').attr('disabled', true); 119 | //数量增加操作 120 | $("#add").click(function() { 121 | t.val(parseInt(t.val()) + 1) 122 | if (parseInt(t.val()) != 1) { 123 | $('#min').attr('disabled', false); 124 | } 125 | 126 | }) 127 | //数量减少操作 128 | $("#min").click(function() { 129 | t.val(parseInt(t.val()) - 1); 130 | if (parseInt(t.val()) == 1) { 131 | $('#min').attr('disabled', true); 132 | } 133 | 134 | }) 135 | 136 | }) -------------------------------------------------------------------------------- /static/css/colstyle.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* CSS Document */ 3 | 4 | /*收藏夹*/ 5 | .you-like{ display:block;margin-bottom:5px;overflow:hidden;background: #fff;margin-top:15px ;} 6 | .you-like .s-bar{font-size: 15px;line-height: 18px;padding: 11px 10px;position: relative;border-bottom:#E4EAEE solid 1px; ;} 7 | .am-badge {font-size:11px} 8 | .you-like .s-content{ padding-top:20px; overflow:hidden;} 9 | .s-item-wrap{width:100%} 10 | .s-item .s-pic {width:120px;position: absolute;} 11 | .s-item .s-info{float: left;margin-left:120px ;padding-top:5px ;} 12 | .s-item {position: relative;margin: 0px 8px 10px 8px;background: #FFF none repeat scroll 0% 0%;border: 1px solid #E4EAEE;color: #595959;overflow: hidden;min-height: 120px;} 13 | .s-item .s-pic .s-pic-link { margin:0px auto;overflow: hidden;text-align: center;} 14 | .s-item .s-pic .s-pic-link img{ width:100%;} 15 | .s-item .s-pic .tip-title{position: absolute;top:50%;left:50%;width:50px;height: 50px;margin-left:-25px;margin-top: -25px;border-radius:50% ;background: rgba(0, 0, 0, 0.5) none repeat scroll 0% 0%; 16 | color:#fff ;text-align: center;vertical-align: middle;padding-top:15px;} 17 | 18 | 19 | /*商品信息*/ 20 | .s-item .s-price-box {height:14px; overflow: hidden; margin: 5px 5px;line-height: 16px;position: absolute;bottom:5px;} 21 | .s-item .s-price {font-size:15px; vertical-align: bottom;color: #F40;} 22 | .s-item .s-price .s-price-sign {font-family: Arial; margin-right: 4px;} 23 | .s-item .s-price .s-value {font-family: Verdana;font-weight: 700;} 24 | .s-item .s-history-price {font-size:12px;vertical-align: bottom;color: #999;} 25 | .s-item .s-history-price .s-price-sign {font-family: Arial;margin-right: 4px;} 26 | .s-item .s-history-price .s-value {font-family: Verdana;text-decoration: line-through;font-weight: 400;} 27 | 28 | /*好评*/ 29 | .s-item .s-title {font-size:15px;overflow:hidden;margin: 0px 8px 0px 8px;height:40px ;line-height:20px ;} 30 | .s-item .s-extra-box {font-size: 12px; margin: 12px 8px 0px;height: 16px;line-height: 16px;color: #9C9C9C;} 31 | .s-more-btn {color: #595959;border: 1px solid #E4EAEE; margin: 10px 7px 38px;text-align: center; cursor: pointer;font-size: 12px;height: 28px; line-height: 28px;background-color: #FFF;} 32 | 33 | /*操作*/ 34 | .s-tp{position: absolute;right:10px;bottom:10px;} 35 | .s-item .s-tp p,.s-history-price{display: none;} 36 | .ui-btn-loading-before{display: inline-block;width: 65px;height: 20px; line-height: 20px;text-align: center;color: #999;font-size: 12px; border: 1px solid #D7D7D7;text-decoration: none;} 37 | .ui-btn-loading-before.buy{display: none;} 38 | .s-tp i{color:#F40;font-size: 16px;margin-left:10px ;} 39 | 40 | 41 | 42 | @media only screen and (min-width:640px) 43 | { 44 | .s-item-wrap{width:33.33%; float:left;} 45 | .s-item .s-pic {width: 100%;position:relative;} 46 | 47 | .s-item .s-info {float: none; margin-left:0;padding-bottom:10px ;} 48 | .s-item .s-price-box {position: static;} 49 | .s-item .s-title {height:20px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;} 50 | .s-price-box,.s-extra-box{text-align: center;} 51 | .s-info .s-title{font-size:14px ;} 52 | .s-history-price{display: inline;} 53 | /*操作*/ 54 | .s-tp {position: absolute;right:0px;bottom:90px;width:100% ;left:0px ;} 55 | .ui-btn-loading-before {cursor: pointer;width:50%;border: none;text-align: center;background: rgba(0, 0, 0, 0.5) none repeat scroll 0% 0%; 56 | color: #FFF;} 57 | .ui-btn-loading-before.buy{display:inline-block;position: absolute;right:-1px;} 58 | .s-tp i{display: none;} 59 | 60 | } 61 | @media only screen and (min-width:1025px) 62 | { 63 | .s-item-wrap{width:25%; float:left;} 64 | } 65 | 66 | @media only screen and (min-width:1200px) 67 | { 68 | .s-item-wrap{width:20%; float:left;} 69 | } 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /static/css/blogstyle.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* CSS Document */ 3 | 4 | @media only screen and (min-width: 1200px) { 5 | .blog-g-fixed { 6 | max-width: 1000px; 7 | } 8 | } 9 | 10 | @media only screen and (min-width: 641px) { 11 | .blog-sidebar { 12 | font-size: 1.4rem; 13 | } 14 | .header { display:block;height: 35px; font-size: 12px;} 15 | .message-l{ float:left;} 16 | .message-l .topMessage{padding: 0px 6px;height: 35px;line-height: 35px;} 17 | .message-r {float: right;} 18 | .message-r .topMessage {float: left;padding: 0px 6px;height: 35px;line-height: 35px;} 19 | *+address, *+blockquote, *+dl, *+fieldset, *+figure, *+hr, *+ol, *+p, *+pre, *+ul { 20 | margin-top:0;} 21 | /*底部*/ 22 | .footer {font-size:12px;max-width:1000px;display:block;position: relative;margin: 0px auto; padding: 7px 0px 9px;border-top: 2px solid #FF5400; margin-top:20px;} 23 | .footer .footer-bd p, .footer .footer-hd p {font-size:12px;margin-bottom: 8px;line-height: 27px;border-bottom: 1px solid #DDD; text-align:left;} 24 | .footer .footer-hd a { margin: 0px 4px;white-space: nowrap;color: #6C6C6C;} 25 | .footer .footer-hd b { margin: 0px 3px;font-weight: 400;color: #DDD;} 26 | .footer .footer-bd p{ border-bottom:none;} 27 | .header a,.footer a{color:#000000} 28 | 29 | .nav.white .logo{display:none;} 30 | .nav.white .logoBig{ display:block;float:left;height:56px;width:115px; margin:0px auto; margin-left:5%} 31 | .nav.white .logoBig img{width:100%;} 32 | .my-cart { width: 46px;height: 46px;} 33 | .search-bar {height: 51px;margin: 0px 50px 0 120px; padding-left:5%;} 34 | #ai-topsearch {height: 46px;} 35 | .search-bar input {width: 80%;height:46px;} 36 | .my-cart a{display:block; margin-top:5px} 37 | .classified{display:none;} 38 | .navCir{display:none;} 39 | .nav.white{ position:relative;top:0px;z-index:0; background:#FFF;} 40 | #ai-topsearch{ font-size:18px;} 41 | 42 | 43 | } 44 | 45 | .blog-main { 46 | padding: 20px 0; 47 | } 48 | 49 | .blog-title { 50 | margin: 10px 0 20px 0; 51 | } 52 | 53 | .blog-meta { 54 | font-size: 14px; 55 | margin: 10px 0 20px 0; 56 | color: #222; 57 | } 58 | 59 | .blog-meta a { 60 | color: #27ae60; 61 | } 62 | 63 | .blog-pagination a { 64 | font-size: 1.4rem; 65 | } 66 | 67 | .blog-team li { 68 | padding: 4px; 69 | } 70 | 71 | .blog-team img { 72 | margin-bottom: 0; 73 | } 74 | 75 | .blog-content img, 76 | .blog-team img { 77 | max-width: 100%; 78 | height: auto; 79 | } 80 | 81 | 82 | /*浮动框*/ 83 | .nav.white{position:fixed;top:0;width:100%; background:#f8f8f8; z-index:99; margin:0px auto;} 84 | .nav.white .logo{float:left;height:41px;width:70px; margin: 6px auto;} 85 | .logoBig{display:none;} 86 | .logo img{width:100%} 87 | 88 | /*搜索框*/ 89 | .search-bar{height:41px; margin: 8px 20px 0 75px;} 90 | .search-bar form{border:2px solid #F03726; max-width:670px;} 91 | .search-bar input{padding-left:5px;height:32px;width:78%;outline:none; font-size:12px; border:none} 92 | #ai-topsearch { width:20%;height:32px;border: 0px none;float:right;background: #F03726 none repeat scroll 0% 0%; 93 | color: #F5F5F2;font-size: 14px;cursor:pointer;} 94 | 95 | .nav.white{padding-left:0px; max-width:1000px; margin:0px auto;} 96 | .nav.white .logo{display:none;} 97 | .nav.white .logoBig { display:block; float:left;height:90px; width:200px; margin-left:0px;} 98 | .nav.white .logoBig li{float:left;} 99 | .search-bar{height:90px; padding: 20px 70px 0 230px; margin:auto;} 100 | 101 | .my-cart{ display:none; right:10%; top:20px;} 102 | 103 | .search-bar input { height: 46px;} 104 | .search-bar {margin:0px auto;} -------------------------------------------------------------------------------- /static/css/cpstyle.css: -------------------------------------------------------------------------------- 1 | .coupon-items {max-width: 860px;} 2 | .coupon-items .coupon-item {width:100%;float: left;margin-bottom:10px ;} 3 | .coupon-list{padding: 10px 10px;height:60px;position: relative;color: #fff;} 4 | 5 | 6 | /*布局*/ 7 | .am-margin { margin: 0 auto;} 8 | .c-msg{display: none;} 9 | .c-class{position: absolute;top:10;left:10;font-size:16px ;line-height:18px ;} 10 | .c-time{position: absolute;top:35px;left:10;font-size:10px;} 11 | .c-price{position: absolute;top:10px;left:70%;font-size:18px ;} 12 | .c-limit {position: absolute;top:35px;left:70%;font-size:10px;} 13 | .coupon-item-yf .c-price{font-size:14px ;} 14 | 15 | /*字体颜色 背景色*/ 16 | .coupon-item-d .coupon-list{background-color: #74d2d4;} 17 | .coupon-item-yf .coupon-list {background-color: #7ea7ce;} 18 | .coupon-item-d .c-type .c-time {color: #31aaad;} 19 | .coupon-item-yf .c-type .c-time {color: #417ab0;} 20 | 21 | /*过期*/ 22 | .td-usestatus {position: absolute;right:0; top:-5%;width: 20%;} 23 | .td-usestatus img {width: 100%;} 24 | 25 | @media only screen and (min-width:640px) 26 | { 27 | .c-msg{display: block;} 28 | .coupon-list{height: auto;padding:0px 0px;} 29 | .c-class,.c-price,.c-limit,.c-time{position: static;font-size:12px ;border-left: none;} 30 | .coupon-item .c-type {position: relative;padding: 40px 0 0;overflow: hidden;color: #fff;text-align: center;} 31 | 32 | .coupon-item-d .c-type {background-color: #74d2d4;} 33 | .coupon-item-d .c-price span,.c-time span,.coupon-item-yf .c-price{display: none;} 34 | .coupon-item-yf .c-type {background-color: #7ea7ce;} 35 | 36 | .coupon-item .range-item .txt{max-width:100px;} 37 | .coupon-items .coupon-item {width:33.33%;} 38 | .coupon-list{margin: 5px 5px;} 39 | .coupon-item .c-msg {padding:5px 0 0;background: #faf9f9;overflow: hidden;} 40 | 41 | 42 | /*价格*/ 43 | .coupon-item .c-price strong,.coupon-item .c-class strong{font-family: Arial;font-size: 36px;line-height: 36px;font-weight: 400;} 44 | .coupon-item-yf .c-class strong{line-height: 36px;font-size: 24px;} 45 | .coupon-item .c-limit {margin: 0 0 8px;} 46 | .coupon-item-d .c-type .c-time {color: #31aaad;} 47 | .coupon-item-yf .c-type .c-time {color: #417ab0;} 48 | .c-type .c-time {margin-bottom:12px;} 49 | .coupon-item-d .c-class {display: none;} 50 | 51 | /*文字说明*/ 52 | .range-all{margin: 0px auto;} 53 | .coupon-item .c-msg {background: #faf9f9;overflow: hidden;} 54 | .coupon-item .range-item {display: block;overflow: hidden;margin:10px 10px;} 55 | .coupon-item .range-item .txt {float:left;white-space: nowrap;text-overflow: ellipsis;color: #999;max-width:80px ;} 56 | .coupon-item .range-item .label {float: left;width: 60px;display: inline;text-align: right;color: #999;} 57 | 58 | /*过期*/ 59 | .td-usestatus {position: absolute;right:-5%; top:-5%;width: 50%;} 60 | .c-class span{display: none;} 61 | 62 | /*装饰*/ 63 | .coupon-item .c-type .c-type-top {display:block;position: absolute;width: 46px;height: 15px;top: 0;left: 50%;margin-left: -23px;background: url(../images/coupon20150805.png) 0 -271px no-repeat;} 64 | .coupon-item .c-type .c-type-bottom {position: absolute;width: 100%;height: 5px;bottom: 0;left: 0;background: url(//misc.360buyimg.com/user/myjd-2015/css/i/coupon20150805.png) -3px -296px no-repeat;} 65 | .coupon-item-d .c-type .c-type-bottom {background-position: -3px -311px;} 66 | .coupon-item-yf .c-type .c-type-bottom {background-position: -3px -326px;} 67 | 68 | /*布局*/ 69 | .c-type,.c-msg{float:none;width:100%;} 70 | /*按钮*/ 71 | .coupon-item .op-btns {margin:8px auto;text-align: center;} 72 | .op-btns .btn {display: inline-block;width: 119px;height: 31px;line-height: 31px;border: 1px solid #74d2d4;color: #74d2d4; 73 | -webkit-border-radius: 15px;-moz-border-radius: 15px;border-radius: 15px;vertical-align: middle;} 74 | 75 | 76 | 77 | } 78 | 79 | @media only screen and (min-width:1025px) 80 | { 81 | .coupon-items .coupon-item {width:25%;} 82 | .coupon-item .op-btns {margin:20px auto;} 83 | } -------------------------------------------------------------------------------- /static/js/script.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | 3 | var hh = document.documentElement.clientHeight; 4 | var ls = document.documentElement.clientWidth; 5 | if (ls < 640) { 6 | 7 | 8 | 9 | $(".select dt").click(function() { 10 | if ($(this).next("div").css("display") == 'none') { 11 | $(".theme-popover-mask").height(hh); 12 | $(".theme-popover").css("position", "fixed"); 13 | $(this).next("div").slideToggle("slow"); 14 | $(".select div").not($(this).next()).hide(); 15 | } 16 | else{ 17 | $(".theme-popover-mask").height(0); 18 | $(".theme-popover").css("position", "static"); 19 | $(this).next("div").slideUp("slow");; 20 | } 21 | 22 | }) 23 | 24 | 25 | $(".eliminateCriteria").live("click", function() { 26 | $(".dd-conent").hide(); 27 | }) 28 | 29 | $(".select dd").live("click", function() { 30 | $(".theme-popover-mask").height(0); 31 | $(".theme-popover").css("position", "static"); 32 | $(".dd-conent").hide(); 33 | }); 34 | $(".theme-popover-mask").live("click", function() { 35 | $(".theme-popover-mask").height(0); 36 | $(".theme-popover").css("position", "static"); 37 | $(".dd-conent").hide(); 38 | }); 39 | 40 | } 41 | 42 | 43 | $("span.love").click(function() { 44 | $(this).toggleClass("active"); 45 | }); 46 | 47 | 48 | $("#select1 dd").click(function() { 49 | $(this).addClass("selected").siblings().removeClass("selected"); 50 | if ($(this).hasClass("select-all")) { 51 | $("#selectA").remove(); 52 | } else { 53 | var copyThisA = $(this).clone(); 54 | if ($("#selectA").length > 0) { 55 | $("#selectA a").html($(this).text()); 56 | } else { 57 | $(".select-result dl").append(copyThisA.attr("id", "selectA")); 58 | 59 | } 60 | } 61 | }); 62 | 63 | $("#select2 dd").click(function() { 64 | $(this).addClass("selected").siblings().removeClass("selected"); 65 | if ($(this).hasClass("select-all")) { 66 | $("#selectB").remove(); 67 | } else { 68 | var copyThisB = $(this).clone(); 69 | if ($("#selectB").length > 0) { 70 | $("#selectB a").html($(this).text()); 71 | } else { 72 | $(".select-result dl").append(copyThisB.attr("id", "selectB")); 73 | } 74 | } 75 | }); 76 | 77 | $("#select3 dd").click(function() { 78 | $(this).addClass("selected").siblings().removeClass("selected"); 79 | if ($(this).hasClass("select-all")) { 80 | $("#selectC").remove(); 81 | } else { 82 | var copyThisC = $(this).clone(); 83 | if ($("#selectC").length > 0) { 84 | $("#selectC a").html($(this).text()); 85 | } else { 86 | $(".select-result dl").append(copyThisC.attr("id", "selectC")); 87 | } 88 | } 89 | }); 90 | 91 | $("#selectA").live("click", function() { 92 | $(this).remove(); 93 | $("#select1 .select-all").addClass("selected").siblings().removeClass("selected"); 94 | }); 95 | 96 | $("#selectB").live("click", function() { 97 | $(this).remove(); 98 | $("#select2 .select-all").addClass("selected").siblings().removeClass("selected"); 99 | }); 100 | 101 | $("#selectC").live("click", function() { 102 | $(this).remove(); 103 | $("#select3 .select-all").addClass("selected").siblings().removeClass("selected"); 104 | }); 105 | 106 | $(".select dd").live("click", function() { 107 | if ($(".select-result dd").length > 1) { 108 | $(".select-no").hide(); 109 | $(".eliminateCriteria").show(); 110 | $(".select-result").show(); 111 | } else { 112 | $(".select-no").show(); 113 | $(".select-result").hide(); 114 | 115 | } 116 | }); 117 | 118 | $(".eliminateCriteria").live("click", function() { 119 | $("#selectA").remove(); 120 | $("#selectB").remove(); 121 | $("#selectC").remove(); 122 | $(".select-all").addClass("selected").siblings().removeClass("selected"); 123 | $(".eliminateCriteria").hide(); 124 | $(".select-no").show(); 125 | $(".select-result").hide(); 126 | 127 | }); 128 | 129 | 130 | 131 | 132 | 133 | 134 | }); -------------------------------------------------------------------------------- /static/css/addstyle.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* CSS Document */ 3 | [class*="am-u-"] {padding-left:0px; padding-right:0px;} 4 | .am-thumbnails > li {padding: 0 .5rem 0 .5rem;} 5 | .am-form textarea,.am-form select, .am-form textarea, .am-form input[type="text"], .am-form input[type="password"], .am-form input[type="datetime"], .am-form input[type="datetime-local"], .am-form input[type="date"], .am-form input[type="month"], .am-form input[type="time"], .am-form input[type="week"], .am-form input[type="tel"], .am-form input[type="email"], .am-form input[type="url"], .am-form input[type="search"], .am-form input[type="tel"], .am-form input[type="color"], .am-form-field,.am-btn{ font-size:14px;} 6 | .user-address {font-size:12px ;} 7 | .am-thumbnails {margin:0px 0px ;margin-bottom: 50px;} 8 | .user-address li.user-addresslist {float: none;min-height:80px ;position: relative;border-bottom:1px solid #eee ;padding:15px 10px;} 9 | .new-tit {padding-bottom:7px ;font-size: 14px; position:relative;} 10 | .new-txt {padding-left:15px;background: url(../images/addicon1.png) 1px 2px no-repeat;color: #6E6E6E;} 11 | .new-txt-rd2 {padding-left: 20px;color: #A40000;} 12 | 13 | /*地址操作*/ 14 | .am-padding form{margin:0px 10px ;} 15 | .new-mu_l2a{padding:6px 15px 8px; display:block;background: url(../images/addicon.png) 1px 9px no-repeat;} 16 | .new-mu_l2cw {font-size: 12px;color: #6E6E6E;} 17 | .new-addr-btn {color: #282828;text-align: right;} 18 | .new-addr-bar {padding: 0px 10px;vertical-align: top;} 19 | .new-addr-btn i{color: #d4d4d4;font-size:14px ;padding-right:10px ;} 20 | a.new-abtn-type{display: block;padding: 8px; overflow:hidden; border-radius: 2px; background-color: #C00;font-size: 14px; color:#FFF;text-align: center;position: fixed;bottom: 0px;width:100% ;cursor: pointer;} 21 | 22 | .new-option-r {position: absolute;z-index: 999;cursor: pointer;bottom:15px ;} 23 | .new-option-r i{color: #d4d4d4;padding-right: 5px;font-size:14px ;} 24 | .user-address li.user-addresslist.defaultAddr .new-option-r i{color: #ee3495;} 25 | 26 | /*地址增加*/ 27 | .am-modal{background: #fff;width: 100%;margin: 0px 0px !important;left: 0;top:0 ;height: 100%;} 28 | .am-form-content.address select{ float: left;width:32% ;margin-left:1% ;} 29 | .am-selected {width: 32.3%;max-width: 200px;float: left;margin-left:1%;} 30 | .address li{font-size:12px ;} 31 | .am-close{width:auto ;line-height:1.2;opacity: .8;text-shadow:none;color:#fff !important ;} 32 | .footer{display: none;} 33 | @media only screen and (min-width:640px) 34 | { 35 | .new-tit {border:none;} 36 | a.new-abtn-type{display: none;} 37 | .user-address li{width:100%;} 38 | 39 | .new-txt-rd2{background: url(../images/addicon2.png) 1px 10px no-repeat;padding-left:15px;padding-top: 8px;} 40 | .am-form-content {margin-left: 105px;} 41 | .new-option-r {position: absolute; top: 7px;right:10px;bottom: auto;} 42 | .footer{display:block;} 43 | 44 | /*地址增加*/ 45 | 46 | } 47 | 48 | @media only screen and (min-width:1025px) 49 | { 50 | 51 | .new-mu_l2cw {height:55px;} 52 | .new-addr-btn{padding-right:12px;padding-bottom:10px ;} 53 | .new-tit {padding:8px 12px 0px 0px;} 54 | .user-address li.user-addresslist{overflow:hidden;border:none;display:block;width:255px;height:150px;float: left;background: url(../images/peraddbg.png)no-repeat scroll 0% 0%;margin-right:10px ;} 55 | .user-address li.user-addresslist.defaultAddr{background: url(../images/peraddressbg.png)no-repeat scroll 0% 0%;} 56 | .user-address li{width:255px; margin-right:20px;} 57 | 58 | .new-option-r {position: absolute;top: 0px;right:3px;padding:0px 5px;border-radius: 0 0 5px 5px;color:#fff;} 59 | .new-option-r i{display: none;} 60 | /*一些操作*/ 61 | .user-addresslist .new-option-r {position: absolute;top: -18px;background: #f974ba;} 62 | .user-addresslist.defaultAddr .new-option-r {top: 0px;background: #ee3495} 63 | .user-addresslist .new-addr-btn{display: none;} 64 | .user-addresslist.defaultAddr .new-addr-btn,.user-addresslist:hover .new-addr-btn,.user-addresslist.active .new-addr-btn{display: block;} 65 | .user-addresslist:hover .new-option-r,.user-addresslist.active .new-option-r {position: absolute;top: 0px;} 66 | 67 | } 68 | 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /static/css/footstyle.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* CSS Document */ 3 | 4 | 5 | /*足迹*/ 6 | .goods {position: relative;width:100%;text-align: left;margin-bottom: 0px;overflow: hidden;} 7 | .goods-box{background:#fff ;border:1px solid #E4EAEE ;} 8 | .goods-img {width:100%;margin: 0px auto;} 9 | 10 | /*布局*/ 11 | .goods-pic{width:120px;position: absolute;} 12 | .goods-attr{margin-left:120px;} 13 | .goods-date{padding: 5px;} 14 | .goods-price{margin-top:10px ;} 15 | 16 | /*删除功能*/ 17 | .goods-date s.line {display: none;} 18 | .goods .goods-date del{font-size:14px ;position: absolute;right:5%;} 19 | .goods-delete {visibility: hidden; position:absolute;top: 0px;right:0px;z-index: 2; display: inline-block;height:33px;width: 33px; background: rgba(0, 0, 0, 0.6);z-index: 99;} 20 | .goods-delete i {display:block;position: absolute;left:8px;top:4px; font-size:22px; color:#FFF;} 21 | /*一些说明*/ 22 | .goods-pic .goods-status {display:none;position:absolute;left: 0px;bottom: 0px;color: #666; height: 30px; line-height: 30px; width: 100%; background: rgba(255, 255, 255, 0.8) none repeat scroll 0% 0%;} 23 | 24 | .goods-pic .cat-only-status{visibility: hidden;z-index: 10;} 25 | .goods-status .cat-only { cursor: pointer;display:inline-block;text-align: center; color: #FFF;text-decoration: none;background-color: #EA6021; opacity: 0.7; 26 | width:50%;text-overflow: ellipsis;white-space: nowrap;} 27 | .goods-status .view_count {display:inline-block;color: #414141;background: #FFF none repeat scroll 0% 0%;opacity: 0.7;width:50%;text-align: center;} 28 | 29 | .goods-pic .goods-status-show {visibility: visible;} 30 | .goods-status.goods-status-show .desc {display:block;text-align: center; color: #333;text-decoration: none;height: 30px; overflow: hidden;} 31 | 32 | /*文字信息*/ 33 | .goods-attr {padding:5px 10px;line-height: 20px;height:120px ;} 34 | .g_price {color: #F64000;font-size: 14px;font-family: Verdana;} 35 | .g_price strong {font-weight: 700;} 36 | .g_price.g_price-original strong{font-family: Verdana;text-decoration: line-through;font-weight: 400;} 37 | .g_price-original{color:#B0B0B0;} 38 | .goods .good-title {font-size: 13px;line-height:20px;height: 40px;overflow: hidden;} 39 | .goods-num { color: #B0B0B0;padding:10px 0px;text-align: center;position: absolute;bottom:0 ;right: 0;} 40 | .goods-num .match-recom a {display: inline-block;width: 55px;height: 20px; line-height: 20px;text-align: center;color: #999;font-size: 12px; border: 1px solid #D7D7D7;text-decoration: none;} 41 | 42 | 43 | 44 | @media only screen and (min-width:640px) 45 | { 46 | .goods {width:33.33%;float: left;} 47 | .goods-date{padding:0px;} 48 | .goods-box{margin:0px 8px 10px 8px; ;} 49 | .goods-pic {width: 100%;position: relative;overflow: hidden;} 50 | .goods-date { position: relative;height: 40px;line-height: 40px;font-family: arial;font-size: 14px;color: #666;} 51 | .goods .goods-date .day-lite del {position: absolute;top:10px;width: 85px;line-height: 22px;background: rgba(0, 0, 0, 0.7) none repeat scroll 0% 0%;color: #FFF;font-size: 12px; text-align: center;text-decoration: none; cursor: pointer;} 52 | .goods-date span {position: relative;background: #FFF;z-index: 2;white-space: nowrap; padding-right:5px;} 53 | .goods-date s.line {display:inline; position: absolute;top: 23px; right: 0px;width: 100%;height: 1px;line-height: 1px; background: #CCC none repeat scroll 0% 0%;} 54 | .goods .good-title {white-space: nowrap;overflow: hidden;text-overflow: ellipsis;height: 20px; } 55 | /*布局*/ 56 | .goods-pic{width:100%;position: static;} 57 | .goods-attr{float:none;margin-left:0px ;height: auto;} 58 | .goods-num {position: static;text-align: center;} 59 | .goods-price{text-align: center;} 60 | 61 | /*删除*/ 62 | .goods .goods-date del{right: auto;} 63 | } 64 | 65 | @media only screen and (min-width:1025px) 66 | { 67 | .goods {width:25%;} 68 | .goods-num .match-recom a {display: inline-block;width:65px;} 69 | /*删除*/ 70 | .goods-pic{width:100%;position:relative;} 71 | .goods-box:hover .goods-delete{visibility:visible;} 72 | .goods-box:hover .goods-pic .goods-status {display: block;} 73 | 74 | 75 | 76 | } 77 | 78 | @media only screen and (min-width:1200px) 79 | { 80 | .goods {width:20%;} 81 | } 82 | 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /apps/users/views.py: -------------------------------------------------------------------------------- 1 | # _*_ encoding: utf-8 _*_ 2 | from django.shortcuts import render, redirect 3 | from django.views.generic.base import TemplateView 4 | from django.contrib.auth import authenticate, login, hashers 5 | from django.views.generic.base import View 6 | from django.contrib.auth.hashers import make_password 7 | from django.http import HttpResponse 8 | 9 | from .models import UserProfile, EmailVerifyRecord 10 | from .forms import LoginForm, RegisterForm 11 | 12 | from utils.email_send import send_register_email 13 | from apiData.result import Result 14 | 15 | 16 | # Create your views here. 17 | 18 | 19 | class SendEmailView(View): 20 | 21 | def post(self, request): 22 | send_email = request.POST.get('email', '') 23 | print(send_email) 24 | if send_email: 25 | send_register_email(send_email, "register") 26 | return HttpResponse('发送成功') 27 | else: 28 | return HttpResponse('发送失败') 29 | 30 | class RegisterView(View): 31 | 32 | def get(self, request): 33 | register_form = RegisterForm() 34 | request_data = { 35 | 'username': '', 36 | 'password': '', 37 | 'email': '', 38 | 'code': '' 39 | } 40 | return render(request, 'register.html', { 41 | 'register_form': register_form, 42 | 'request_data': request_data 43 | }) 44 | 45 | def post(self, request): 46 | register_form = RegisterForm(request.POST) 47 | user_name = request.POST.get('username', '') 48 | password = request.POST.get('password', '') 49 | user_email = request.POST.get('email', '') 50 | code = request.POST.get('code', '') 51 | codes = EmailVerifyRecord.objects.filter(email=user_email) 52 | is_active = False 53 | 54 | request_data = { 55 | 'username': user_name, 56 | 'password': password, 57 | 'email': user_email, 58 | 'code': code 59 | } 60 | if register_form.is_valid(): 61 | 62 | for f_code in codes: 63 | if f_code.code == code: 64 | is_active = True 65 | 66 | if not is_active: 67 | return render(request, "register.html", {"register_form":register_form, "msg":"邮箱验证码输入错误", 'request_data': request_data}) 68 | 69 | if UserProfile.objects.filter(email=user_email): 70 | return render(request, "register.html", {"register_form":register_form, "msg":"用户已经存在", 'request_data': request_data}) 71 | 72 | user_profile = UserProfile() 73 | user_profile.username = user_name 74 | user_profile.email = user_email 75 | 76 | # user_profile.code = code 77 | user_profile.password = make_password(password) 78 | user_profile.save() 79 | 80 | # send_register_email(user_name, "register") 81 | return redirect('/login/') 82 | else: 83 | return render(request, 'register.html', {'msg': '输入错误' ,'register_form': register_form, 'request_data': request_data}) 84 | 85 | class LoginView(View): 86 | 87 | def get(self, request): 88 | userid = request.session.get('_auth_user_id') 89 | 90 | if userid is not None: 91 | return redirect('/buy/') 92 | return render(request, 'login.html', {}) 93 | 94 | 95 | def post(self, request): 96 | 97 | login_form = LoginForm(request.POST) 98 | 99 | if login_form.is_valid(): 100 | user_name = request.POST.get('username', '') 101 | password = request.POST.get('password', '') 102 | user = authenticate(request, username=user_name, password=password) 103 | if user is not None: 104 | login(request, user) 105 | return redirect('/buy/') 106 | else: 107 | return render(request, 'login.html', {'msg': '账号密码不对', 'login_form': login_form}) 108 | else: 109 | return render(request, 'login.html', {'msg': '账号密码不对', 'login_form': login_form}) 110 | -------------------------------------------------------------------------------- /wave_club_shop/settings.online.py: -------------------------------------------------------------------------------- 1 | """ 2 | Django settings for wave_club_shop project. 3 | 4 | Generated by 'django-admin startproject' using Django 2.1.7. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/2.1/topics/settings/ 8 | 9 | For the full list of settings and their values, see 10 | https://docs.djangoproject.com/en/2.1/ref/settings/ 11 | """ 12 | 13 | import os 14 | import sys 15 | # Build paths inside the project like this: os.path.join(BASE_DIR, ...) 16 | BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 17 | 18 | # 引入path 搜索路劲 19 | sys.path.insert(0, BASE_DIR) 20 | sys.path.insert(0, os.path.join(BASE_DIR, 'apps')) 21 | sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps')) 22 | 23 | # Quick-start development settings - unsuitable for production 24 | # See https://docs.djangoproject.com/en/2.1/howto/deployment/checklist/ 25 | 26 | # SECURITY WARNING: keep the secret key used in production secret! 27 | SECRET_KEY = '$@mau!=rmmszn5*wz19m*#dhvdfjoo%o!jsf22$y6d$+rt%+_#' 28 | 29 | # SECURITY WARNING: don't run with debug turned on in production! 30 | DEBUG = False 31 | 32 | ALLOWED_HOSTS = [] 33 | 34 | 35 | # Application definition 36 | 37 | INSTALLED_APPS = [ 38 | 'django.contrib.admin', 39 | 'django.contrib.auth', 40 | 'django.contrib.contenttypes', 41 | 'django.contrib.sessions', 42 | 'django.contrib.messages', 43 | 'django.contrib.staticfiles', 44 | 'users', 45 | 'goods', 46 | 'captcha', 47 | ] 48 | 49 | MIDDLEWARE = [ 50 | 'django.middleware.security.SecurityMiddleware', 51 | 'django.contrib.sessions.middleware.SessionMiddleware', 52 | 'django.middleware.common.CommonMiddleware', 53 | 'django.middleware.csrf.CsrfViewMiddleware', 54 | 'django.contrib.auth.middleware.AuthenticationMiddleware', 55 | 'django.contrib.messages.middleware.MessageMiddleware', 56 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', 57 | ] 58 | 59 | ROOT_URLCONF = 'wave_club_shop.urls' 60 | 61 | TEMPLATES = [ 62 | { 63 | 'BACKEND': 'django.template.backends.django.DjangoTemplates', 64 | 'DIRS': [], 65 | 'APP_DIRS': True, 66 | 'OPTIONS': { 67 | 'context_processors': [ 68 | 'django.template.context_processors.debug', 69 | 'django.template.context_processors.request', 70 | 'django.contrib.auth.context_processors.auth', 71 | 'django.contrib.messages.context_processors.messages', 72 | ], 73 | }, 74 | }, 75 | ] 76 | 77 | WSGI_APPLICATION = 'wave_club_shop.wsgi.application' 78 | 79 | 80 | # Database 81 | # https://docs.djangoproject.com/en/2.1/ref/settings/#databases 82 | 83 | DATABASES = { 84 | 'default': { 85 | 'ENGINE': 'django.db.backends.mysql', 86 | 'NAME': 'shop', 87 | 'USER': 'root', 88 | 'PASSWORD': 'love6591321', 89 | 'HOST': '127.0.0.1' 90 | } 91 | } 92 | 93 | 94 | # Password validation 95 | # https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validators 96 | 97 | AUTH_PASSWORD_VALIDATORS = [ 98 | { 99 | 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 100 | }, 101 | { 102 | 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 103 | }, 104 | { 105 | 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 106 | }, 107 | { 108 | 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 109 | }, 110 | ] 111 | 112 | 113 | AUTH_USER_MODEL = "users.UserProfile" 114 | 115 | # Internationalization 116 | # https://docs.djangoproject.com/en/2.1/topics/i18n/ 117 | 118 | LANGUAGE_CODE = 'zh-hans' 119 | 120 | TIME_ZONE = 'Asia/Shanghai' 121 | 122 | USE_I18N = True 123 | 124 | USE_L10N = True 125 | 126 | USE_TZ = True 127 | 128 | 129 | # Static files (CSS, JavaScript, Images) 130 | # https://docs.djangoproject.com/en/2.1/howto/static-files/ 131 | 132 | ALLOWED_HOSTS = [ '127.0.0.1', 'localhost' ,'106.14.185.196',] 133 | 134 | 135 | STATIC_URL = '/static/' 136 | STATIC_ROOT = os.path.join(BASE_DIR, "static/") 137 | 138 | #STATICFILES_DIRS = ( 139 | # os.path.join(BASE_DIR, 'static'), 140 | #) -------------------------------------------------------------------------------- /apps/users/templates/_register.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% load staticfiles %} 4 | 5 | 6 | 注册 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 19 | 30 |
31 | 39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 | {% csrf_token %} 47 |
48 |

会员注册

49 |
50 |
51 | 52 | 53 |
54 |
55 | 56 |
57 |
58 | 59 | 60 |
61 | 73 |
74 | {{ register_form.captcha }} 75 |
76 |
77 | 78 | 93 | 94 | 95 | 103 |
104 | 105 |
106 | 107 |
108 |
109 | 110 | 118 | 119 | -------------------------------------------------------------------------------- /wave_club_shop/settings.local.py: -------------------------------------------------------------------------------- 1 | """ 2 | Django settings for wave_club_shop project. 3 | 4 | Generated by 'django-admin startproject' using Django 2.1.7. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/2.1/topics/settings/ 8 | 9 | For the full list of settings and their values, see 10 | https://docs.djangoproject.com/en/2.1/ref/settings/ 11 | """ 12 | 13 | import os 14 | import sys 15 | # Build paths inside the project like this: os.path.join(BASE_DIR, ...) 16 | BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 17 | 18 | # 引入path 搜索路劲 19 | sys.path.insert(0, BASE_DIR) 20 | sys.path.insert(0, os.path.join(BASE_DIR, 'apps')) 21 | sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps')) 22 | 23 | # Quick-start development settings - unsuitable for production 24 | # See https://docs.djangoproject.com/en/2.1/howto/deployment/checklist/ 25 | 26 | # SECURITY WARNING: keep the secret key used in production secret! 27 | SECRET_KEY = '$@mau!=rmmszn5*wz19m*#dhvdfjoo%o!jsf22$y6d$+rt%+_#' 28 | 29 | # SECURITY WARNING: don't run with debug turned on in production! 30 | DEBUG = True 31 | 32 | ALLOWED_HOSTS = [] 33 | 34 | 35 | # Application definition 36 | 37 | INSTALLED_APPS = [ 38 | 'django.contrib.admin', 39 | 'django.contrib.auth', 40 | 'django.contrib.contenttypes', 41 | 'django.contrib.sessions', 42 | 'django.contrib.messages', 43 | 'django.contrib.staticfiles', 44 | 'users', 45 | 'goods', 46 | 'captcha', 47 | ] 48 | 49 | MIDDLEWARE = [ 50 | 'django.middleware.security.SecurityMiddleware', 51 | 'django.contrib.sessions.middleware.SessionMiddleware', 52 | 'django.middleware.common.CommonMiddleware', 53 | 'django.middleware.csrf.CsrfViewMiddleware', 54 | 'django.contrib.auth.middleware.AuthenticationMiddleware', 55 | 'django.contrib.messages.middleware.MessageMiddleware', 56 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', 57 | ] 58 | 59 | ROOT_URLCONF = 'wave_club_shop.urls' 60 | 61 | TEMPLATES = [ 62 | { 63 | 'BACKEND': 'django.template.backends.django.DjangoTemplates', 64 | 'DIRS': [], 65 | 'APP_DIRS': True, 66 | 'OPTIONS': { 67 | 'context_processors': [ 68 | 'django.template.context_processors.debug', 69 | 'django.template.context_processors.request', 70 | 'django.contrib.auth.context_processors.auth', 71 | 'django.contrib.messages.context_processors.messages', 72 | ], 73 | }, 74 | }, 75 | ] 76 | 77 | WSGI_APPLICATION = 'wave_club_shop.wsgi.application' 78 | 79 | 80 | # Database 81 | # https://docs.djangoproject.com/en/2.1/ref/settings/#databases 82 | 83 | DATABASES = { 84 | 'default': { 85 | 'ENGINE': 'django.db.backends.mysql', 86 | 'NAME': 'shop', 87 | 'USER': 'root', 88 | 'PASSWORD': 'love6591321', 89 | 'HOST': '106.14.185.196' 90 | } 91 | } 92 | 93 | 94 | # Password validation 95 | # https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validators 96 | 97 | AUTH_PASSWORD_VALIDATORS = [ 98 | { 99 | 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 100 | }, 101 | { 102 | 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 103 | }, 104 | { 105 | 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 106 | }, 107 | { 108 | 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 109 | }, 110 | ] 111 | 112 | 113 | AUTH_USER_MODEL = "users.UserProfile" 114 | 115 | # Internationalization 116 | # https://docs.djangoproject.com/en/2.1/topics/i18n/ 117 | 118 | LANGUAGE_CODE = 'zh-hans' 119 | 120 | TIME_ZONE = 'Asia/Shanghai' 121 | 122 | USE_I18N = True 123 | 124 | USE_L10N = True 125 | 126 | USE_TZ = False 127 | 128 | ALLOWED_HOSTS = [ '127.0.0.1', 'localhost' ,'106.14.185.196',] 129 | 130 | # Static files (CSS, JavaScript, Images) 131 | # https://docs.djangoproject.com/en/2.1/howto/static-files/ 132 | 133 | STATIC_URL = '/static/' 134 | # STATIC_ROOT = os.path.join(BASE_DIR, "static/") 135 | STATICFILES_DIRS = ( 136 | os.path.join(BASE_DIR, 'static'), 137 | ) 138 | 139 | 140 | EMAIL_HOST = "smtp.163.com" 141 | EMAIL_PORT = 25 142 | EMAIL_HOST_USER = "liujunbingdea3@163.com" 143 | EMAIL_HOST_PASSWORD = "love6591322" 144 | EMAIL_USE_TLS= False 145 | EMAIL_FROM = "liujunbingdea3@163.com" 146 | -------------------------------------------------------------------------------- /static/css/refstyle.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* CSS Document */ 3 | .refund-main{width: 100%;padding:0px 10px;} 4 | 5 | /*进度条*/ 6 | .m-progress {margin: 0 auto 25px;height: 60px;max-width: 700px;margin-top:40px ;} 7 | .m-progress-list{height: 66px;font-size: 0;text-align: justify;} 8 | /*步骤背景*/ 9 | .m-progress-list .step {display: inline-block;width:70px;text-align: center;color: #999;letter-spacing: -5px;} 10 | .m-progress-list .stage-name {padding-top: 10px;font-size: 12px;line-height: 14px; 11 | letter-spacing: normal;word-spacing: normal;} 12 | .u-progress-stage-bg {position: relative;display: inline-block;background-image: url(../images/sprite.png); 13 | background-position: -45px -135px;width: 29px;height: 29px;} 14 | /*变换的背景*/ 15 | .u-stage-icon-inner .bg {position: absolute;left: 0px;top: 0px;} 16 | .step-1 .u-stage-icon-inner .bg {background-image: url(../images/sprite.png);background-position: -79px -135px;width: 19px;height: 19px;} 17 | .step-3 .u-stage-icon-inner .bg {opacity:0;background-image: url(../images/sprite.png);background-position: -103px -135px;width: 19px;height: 19px;} 18 | 19 | .u-stage-icon-inner {position: relative;z-index: 20;display: inline-block;width: 19px;height: 19px;line-height: 19px; 20 | vertical-align: top;margin-top: 5px;margin-left: -24px;color: #b5b5b5;font-size: 12px;letter-spacing: normal;word-spacing: normal;} 21 | .u-progress-placeholder {display: inline-block;width: 100%;height: 0;font-size: 0;line-height: 0;overflow: hidden;} 22 | 23 | 24 | .u-progress-bar {margin: -56px 40px 0;background-color: #dcdcdc;height: 5px;font-size: 0;padding: 2px 0;} 25 | .u-progress-bar-inner {position: relative;z-index: 10;height: 5px;width: 0;transition: width 1s .5s linear;background-color: #23c279;} 26 | 27 | 28 | 29 | /*布局*/ 30 | .am-form-label {float: none;width: auto;font-size: 14px;font-weight: 600;margin: 10px auto;} 31 | .am-form-content {margin-left: 0px;width:100% ;font-size: 14px;} 32 | .am-form-content .am-selected,.am-form-content input{width: 100%;min-height:32px ;border:1px solid #e6e6e6;} 33 | .am-form-content textarea {width: 100%;min-height:105px ;border:1px solid #e6e6e6; padding: 0.5em 0.7em;} 34 | .info-btn{text-align: center;padding-bottom: 10px;} 35 | .am-form-content li{font-size:14px ;} 36 | .am-form-group {margin-bottom:0px;} 37 | .am-form-group input{padding: 0.5em 0.7em;} 38 | .am-btn {border:none ;} 39 | /*上传*/ 40 | .filePic {width:100px;padding:10px 10px;position: relative;overflow: hidden;} 41 | .inputPic {cursor: pointer;opacity: 0;width: 100%;height: 100%;position: absolute;top: 0;left: 0;} 42 | img{width:100% ;} 43 | .refund-tip{position: relative;border:1px dashed #e6e6e6 ;margin:10px auto ;} 44 | .refund-tip .desc{position: absolute;right:10px;top:45px ;} 45 | 46 | .refund-aside{display:none ;padding: 10px;} 47 | .am-form-group:after { content:"."; display:block; height:0; visibility:hidden; clear:both; } 48 | 49 | 50 | /*钱款去向*/ 51 | .record-aside{display: none;} 52 | .record-main .detail-list{padding:10px;border-bottom:1px solid #e6e6e6 ;overflow: hidden;} 53 | .record-main .fund-tool{float: left;font-size:14px;} 54 | .record-main .money{float:right;font-size:14px;} 55 | .record-main .m-progress{margin-top:20px ;} 56 | 57 | @media only screen and (min-width: 640px){ 58 | .comment-list{overflow: hidden;margin:0px auto;padding:0px 20px;} 59 | .refund-main,.refund-aside{border:1px solid #e6e6e6;margin-bottom: 10px;} 60 | /*布局*/ 61 | .am-form-label {float:left;width: auto;font-size: 14px;font-weight: 600;margin:7px auto;} 62 | .am-form-content {margin-left:80px;width:auto;font-size: 14px;} 63 | label span{display: none;} 64 | .am-form-group{margin:10px 0px ;} 65 | 66 | /*订单信息*/ 67 | .refund-aside{display:block;overflow: hidden;} 68 | .item-pic{width:150px ;float:left;margin-right: 10px;} 69 | .item-name{font-size: 14px;font-weight: 600;margin-bottom:5px ;} 70 | .item-info{margin-top: 10px;} 71 | 72 | /*钱款去向*/ 73 | .record-aside{display:block;} 74 | .record-aside .item-pic{width: 100px;} 75 | } 76 | @media only screen and (min-width:1025px){ 77 | .refund-main,.refund-aside{float: left;height:420px ;} 78 | .refund-main{width:70%;padding-right:60px ;} 79 | .refund-aside{max-width:300px;width:30%;border-right: none;padding:15px;} 80 | .item-title:after { content:"."; display:block; height:0; visibility:hidden; clear:both; } 81 | .item-pic{width: 60px;} 82 | .item-info div{margin: 5px auto;} 83 | .item-info .info-title{width:80px ;display: inline-block;} 84 | 85 | /*钱款去向*/ 86 | .record-aside {max-width:800px;margin: 10px auto;} 87 | .record-aside .item-title:after {clear:none;} 88 | .record-main{max-width: 900px;border:1px solid #eee ;margin: 0px auto;} 89 | 90 | } 91 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /apps/users/templates/login.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% load staticfiles %} 4 | 5 | 6 | 7 | 登录 8 | 9 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 25 | 26 | 27 | 96 | 97 | 98 | 113 | 114 | 115 | -------------------------------------------------------------------------------- /static/css/optstyle.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | *{margin:0;padding:0;list-style-type:none;} 3 | a,img{border:0;} 4 | body{font:12px/180% microsoft yahei;} 5 | a{text-decoration:none;cursor:pointer} 6 | .clear{clear: both;} 7 | /* input */ 8 | input{font-size:12px;font-size:100%;outline:none;line-height:normal;color:#444;} 9 | .ipt{border:solid 1px #d2d2d2;border-left-color:#ccc;border-top-color:#ccc;border-radius:2px;box-shadow:inset 0 1px 0 #f8f8f8;background-color:#fff;padding:4px 6px;height:21px;line-height:21px;color:#555;width:180px;vertical-align:baseline;} 10 | .ipt:focus{border-color:#95C8F1;box-shadow:0 0 4px #95C8F1;} 11 | .theme-login,.item-props-can{cursor: pointer;} 12 | 13 | .theme-popover-mask{z-index:10000000;position:fixed;left:0;top:0;width:100%;height:100%;background:#000;opacity:0.5;filter:alpha(opacity=50);-moz-opacity:0.5;display:none;} 14 | .theme-popover{z-index:10000009;position:fixed;bottom:0;left:0;width:100%;display:none;} 15 | .theme-poptit{padding:12px;position:relative;overflow: hidden;background:#fff ;height:80px ;} 16 | .theme-poptit .close{float:right;color:#999;padding:5px;margin:-2px -5px -5px;font:bold 14px/14px simsun;text-shadow:0 1px 0 #ddd} 17 | .theme-poptit .close:hover{color:#444;} 18 | 19 | /*内容布局*/ 20 | 21 | .theme-popover .theme-poptit h3,.btn.close,i.theme-login{display:none} 22 | .theme-span{width:100%;background:transparent;height: 15px;} 23 | .theme-popbod.dform{background:#fff;} 24 | /*商品信息*/ 25 | .heme-signin{position:relative;} 26 | .theme-signin-right {background:#fff;overflow: visible;} 27 | .theme-signin-right .img-info{position: absolute;top:0;left:10px;background:#fff;border-radius:5px;border:1px solid #f5f5f5;} 28 | .theme-signin-right .img-info img{margin:5px 5px ;width:80px;height:80px ;} 29 | .theme-signin-right .text-info{position:absolute;left:110px;top:20px ;} 30 | .text-info .price-now{display:block;font-size:16px ;color:#f50;} 31 | .text-info span#Stock{font-size:14px ;} 32 | 33 | /*可选规格*/ 34 | .theme-signin-left{padding-bottom:30px;max-height:250px ;overflow-y: scroll;background: #fff;} 35 | .theme-options{display: block;overflow: hidden;padding-left: 10px;padding-right:10px ;} 36 | .theme-signin-left .cart-title{font-size:14px ;font-weight: 600;} 37 | .theme-signin-left .sku-line{float: left; margin:10px;margin-left:0;border-radius:5px ; background:#f5f5f5 ;padding:5px;} 38 | .theme-signin-left .sku-line.selected{background:#f50;color: #fff;} 39 | 40 | .theme-signin .btn{width:100%;font-size: 16px;padding:5px ;} 41 | .btn-op{position:fixed;left:0;bottom: 0;width:100% ;} 42 | .iteminfo_parameter dt.theme-login {text-align: left;margin-left:-30px ;width:100% ;} 43 | .theme-login .cart-title{float: left;margin-right:10px ;} 44 | 45 | .theme-options dd{margin:10px 0px ;} 46 | 47 | 48 | @media only screen and (min-width:640px) 49 | { 50 | .theme-span{height:0px;background:#fff ;} 51 | .theme-popover{box-shadow:0 0 10px #666;position:absolute;top:20%;left:20%;width:auto;bottom:auto;border:solid 2px #e4e4e4;border-radius:5px;} 52 | .theme-poptit{display: none;} 53 | 54 | 55 | /*商品规格*/ 56 | .theme-signin-left{padding-top:10px ;float: left;max-width:300px;max-height: none;overflow: visible;} 57 | .theme-options .cart-title{margin-top:10px ;} 58 | .theme-options ul{float: left;} 59 | 60 | .theme-signin-left .sku-line {background: none;border-radius:0 ;margin:5px;padding:3px;border:2px solid #F5F5F5 ;color:#000 ;} 61 | .theme-signin-left .sku-line.selected {background:none;color:#000;border: 2px solid #BE0106;} 62 | 63 | /*选中样式*/ 64 | .sku-line{position: relative;} 65 | .theme-options li a:hover{ border:2px solid #e4393c; padding:0 5px; text-decoration:none;} 66 | .theme-options li i{ position:absolute; width:10px; height:10px; font-size:0; line-height:0; right:0px; bottom:0px; background:url(../images/sys_item_selected.gif) no-repeat right bottom; z-index:99; display:none;} 67 | .theme-options li.selected a{ border:2px solid #e4393c; padding:0 5px;} 68 | .theme-options li.selected i{ display:block;} 69 | 70 | /*商品信息*/ 71 | .theme-signin-right{display: none;} 72 | .text-info .price-now{float: left;margin-right:10px ;} 73 | .text-info span#Stock {float:left;font-size: 12px;} 74 | 75 | /*操作*/ 76 | .btn-op{overflow: hidden;padding:10px ;margin-left:45px ;position: static;} 77 | .theme-signin .btn {width:auto;float: left;font-size:12px ;padding:5px 15px ;border-radius:0 ;margin-right: 10px;} 78 | .btn.close {display:block;float: left;position: static;} 79 | i.theme-login{display: inline-block;} 80 | } 81 | 82 | @media only screen and (min-width:1025px) 83 | { 84 | i.theme-login{display: none;} 85 | .theme-signin-left{padding-top:15px ;float: left;max-width:none;padding-bottom:0px ;} 86 | .theme-signin-right{float: left;display:block;overflow: hidden;padding: 10px;} 87 | .theme-signin-right .img-info,.theme-signin-right .text-info{position: static;} 88 | .theme-signin-right .img-info img{width:120px;height:120px ;} 89 | 90 | 91 | } 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /static/css/blstyle.css: -------------------------------------------------------------------------------- 1 | 2 | /*标题*/ 3 | .ebill-section .ebill-title-section {background-color: #4ABAE1;color: #FFF;position: relative;padding:8px 15px;} 4 | .ebill-section .section-title {font-size: 20px;font-weight: 700;color: #FFF;} 5 | .ebill-section .section-title .desc {font-size: 14px;font-weight: 400;} 6 | .ebill-section .section-title a {color: #08C;cursor: pointer;} 7 | 8 | .trade-circle-select {position: absolute;right: 60px;top: 0px;height: 42px;z-index: 999;display:none;} 9 | .trade-circle-select a{color: #FCFCFC;} 10 | .current-circle {font-size: 14px;color: #FFF;text-decoration: none;display: block;padding: 10px 0px 2px;} 11 | .ebill-section span.title-tag {background-repeat: no-repeat;display: block;width: 42px;height:43px;z-index: 999;position: absolute;top: -6px;right: 10px;font-size: 14px;padding-top: 10px;font-weight: 400;overflow: hidden;background: url(../images/3CoOkxrFOP.png);background-position: -1734px -102px;} 12 | .ebill-section span.title-tag i.num {font-size: 16px;text-align: center;padding-left:5px ;} 13 | 14 | /*内容*/ 15 | .income-slider{overflow: hidden;position: relative;} 16 | /*支出*/ 17 | .module-income {overflow: hidden;background-color: #F2F9FB;width:100%;position: relative;} 18 | .module-income .block-income {width:100%;overflow: hidden;float: left;background-color: #FFF;padding: 20px 15px;} 19 | 20 | /*金额*/ 21 | h3.block-title {font-size:20px; font-weight: 400;color: #555; height: 39px;} 22 | h3.block-title span.num { color: #FD8608;padding-left: 10px;} 23 | span.desc {font-size: 12px; padding-left:10px;} 24 | 25 | /*明细*/ 26 | .module-income .catatory-details {overflow:hidden;background-color: #EEE;padding: 22px 18px;font-size: 12px;height:205px ;} 27 | .fn-left {float: left;} 28 | .catatory-details .catatory-chart {width:35%;} 29 | .catatory-details .catatory-detail {width:63%;} 30 | .catatory-chart ul{margin-top: 20px;padding-right: 10px; border-right: 1px solid #939578;min-height:125px;} 31 | li.am-btn am-btn-danger anniu.ng-scope{display: block;width:100%;overflow: hidden;} 32 | 33 | /*明细类型*/ 34 | .catatory-details .catatory-detail ul {margin-top: 20px; padding-left: 10px;} 35 | .emoji-span {white-space: nowrap;text-overflow: ellipsis;overflow: hidden;max-width:90px;display: inline-block;} 36 | /*明细商品*/ 37 | .catatory-details .catatory-detail ul a {display: block;color: #000;position: relative;width:100%;} 38 | .catatory-detail ul a .amount {float: none;position: absolute;right:0px;} 39 | span.catatory.fn-left.ng-binding{height: 19px; line-height:19px ;} 40 | 41 | /*收入*/ 42 | .module-income .block-expense {display:none;width:25%;overflow: hidden;height:284px;background-color: #F2F9FB;background-repeat: no-repeat;padding-left: 80px;position: relative;float: left;background-position: -7px center;background-image:url(../images/YXARdXxj5.png);} 43 | .slide-button {position: absolute;top:50%;margin-top:-20px;left: 29px;height: 40px;width: 38px;background: url(../images/3CoOkxrFOP.png) no-repeat;background-position: -1817px -103px;} 44 | .slide-button.right{cursor:pointer} 45 | 46 | .block-hidetitle {margin-top: 120px;font-size:20px;font-weight: 400;color: #555;} 47 | .block-hidetitle .num {color: #FD8608;font-size:16px;} 48 | h3.expense.income-title.block-title{display: block; background:#fff ;padding:0px 15px ;} 49 | 50 | /*消费走势*/ 51 | .inner-module {padding: 17px 17px 0px;background:#fff ;border-top: 2px solid #53B5D8;height:200px ;} 52 | .inner-module .module-title {font-size: 14px;color: #606060;font-weight: 700;} 53 | 54 | /*银行卡*/ 55 | .module-card .cards-carousel .mask {position: relative;overflow: hidden;height: 100px;list-style: outside none none;margin:15px 10px 0 0 ;} 56 | .cards-carousel .mask .bac {background-repeat: no-repeat;width: 267px;height: 89px;margin-top: 6px; 57 | background-position: -887px -102px;background-image: url("../images/3CoOkxrFOP.png");} 58 | .cards-carousel .mask .bank{position: absolute;margin-top: 10px;padding: 5px 10px;top: 15px;left: 15px;font-size: 16px;text-indent: -9999em; 59 | width: 126px;height:36px;background-repeat: no-repeat;background-color: #FFF;background-position: 5px center;} 60 | .module-card .cards-carousel .details {position: absolute;top: 83px;right:3% ;cursor: pointer;} 61 | .cards-details{display: none;} 62 | 63 | /*银行卡详情*/ 64 | .module-card {position: relative;} 65 | .cards-details {position: absolute;overflow: hidden;border: 1px solid #98D3E8;border-radius: 7px;font-size: 13px;top: 54px;margin:0px 17px 0px 0px;} 66 | .module-card .cards-details .bank-name {height: 30px;background-color: #FFF;} 67 | .module-card .cards-details .bank-name .name {height: 30px;width: 130px;background-position: center center;} 68 | .fn-right{float: right;} 69 | .module-card .cards-details .close {position: absolute;width: 10px;height: 13px;top: 9px;right: 8px;cursor:pointer ;} 70 | .module-card .cards-details .bank-detail {background-color: #B9E9FA;padding: 5px 2px;font-size: 12px;overflow: hidden;} 71 | .module-card .cards-details .bank-detail div {width: 50%;padding: 1px 19px;} 72 | 73 | @media only screen and (min-width:1025px) 74 | { 75 | .trade-circle-select,.module-income .block-expense{display: block;} 76 | .module-income .block-income {width: 75%;} 77 | .emoji-span {max-width:150px;} 78 | .ebill-section{margin-bottom: 20px;width:98%;margin-left:1% ;} 79 | 80 | /*支出定位*/ 81 | h3.expense.income-title.block-title {background:none;position: absolute;top:50%;margin-top: -38px;text-align: center;height: auto;left:75%;margin-left:100px ;padding:0px ;} 82 | h3.expense.income-title.block-title span{display: block;padding-left: 0;} 83 | 84 | .inner-module{width:50%;float: left;} 85 | 86 | 87 | } 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /static/css/dlstyle.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* CSS Document */ 3 | 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, hgroup, 16 | menu, nav, output, ruby, section, summary, 17 | time, mark, audio, video { 18 | margin: 0; 19 | padding: 0; 20 | border: 0; 21 | font-size: 100%; 22 | font: inherit; 23 | vertical-align: baseline; 24 | font-family: arial,"Lantinghei SC","Microsoft Yahei"; 25 | } 26 | 27 | html,body { 28 | height: 100%; 29 | background:#f5f5f5 ; 30 | } 31 | 32 | a { 33 | color: #000; 34 | text-decoration: none; 35 | } 36 | hr{margin:5px 5px} 37 | .clear{ clear:both;} 38 | .login-box {width: 100%;} 39 | .login-banner-bg,.login-boxtitle{display: none;} 40 | 41 | /*标题*/ 42 | h3.title{text-align: center;padding:8px;font-weight: 600;} 43 | .zcnext{position: absolute;right:5px;top:5px ;padding:5px;font-size:14px ;} 44 | 45 | /*主题*/ 46 | .login-form{width: 100%;} 47 | form{max-width:320px;margin:20px auto ;} 48 | .user-name,.user-pass,.user-email,.user-phone,.verification{position: relative;height: 42px;margin-bottom:8px;} 49 | form label{position:absolute;display: block;width: 40px;height: 40px;line-height: 40px;background:#fff;text-align: center;top:1px;left:1px} 50 | form input{font-size: 14px;line-height: 18px;height:42px;padding: 11px 8px 11px 50px;width:100%;border:1px solid #fff;} 51 | input:-webkit-autofill { -webkit-box-shadow: 0 0 0px 1000px #fff inset;} 52 | .am-cf{width: 100%;max-width:320px;margin:0px auto ;} 53 | .am-cf input{width: 100%;font-size: 14px;} 54 | .login-links{max-width:320px;margin:20px auto ;font-size:14px;} 55 | 56 | /*合作账号*/ 57 | .partner{width: 100%;max-width:320px;margin:20px auto ;font-size:14px;} 58 | .partner h3{text-align: center;} 59 | .am-btn-group{display: block;overflow: hidden;} 60 | .am-btn-group li{width:33.333% ;display: block;float: left;} 61 | .am-btn-group i{margin:0px auto ;display: block;width: 42px;height: 42px;border-radius: 42px;line-height:42px ;padding-left: 10px;border:1px solid #eee ;background:#fff ;color: #0e90d2;} 62 | .am-btn-group span{display: none;} 63 | 64 | 65 | /*注册*/ 66 | .verification {position: relative;} 67 | input#code {width: 80%;} 68 | #dyMobileButton{ width: 32%; margin-left: 10px;border: 1px solid #DDD;padding: 0px;height: 40px;background: #F4F4F4 none repeat scroll 0% 0%;margin-top: 0px;text-align: center;line-height:40px;color: #333;text-decoration: none;position: absolute;right: 0px;bottom: 0px;} 69 | 70 | input#code1 {width: 80%;} 71 | #dyMobileButton1{margin-left: 10px;border: 1px solid #DDD;padding: 0px;width: 15%;height: 40px;background: #F4F4F4 none repeat scroll 0% 0%;margin-top: 0px;text-align: center;line-height:40px;color: #333;text-decoration: none;position: absolute;right: 0px;bottom: 0px;} 72 | 73 | 74 | 75 | /*修改的样式*/ 76 | #doc-my-tabs li.am-active a,#doc-my-tabs li a{ background:#f8f8f8;} 77 | .am-tabs-bd{border: none;} 78 | .am-nav-tabs.am-nav-justify li {padding:5px;} 79 | .am-nav-tabs>li>a,.am-nav-tabs.am-nav-justify>li>a,.am-nav-tabs.am-nav-justify>.am-active>a,.am-nav-tabs>li.am-active>a, .am-nav-tabs>li.am-active>a:focus, .am-nav-tabs>li.am-active>a:hover {border: none; color: #000;font-weight: 600;} 80 | .am-nav-tabs.am-nav-justify > .am-active> a, .am-nav-tabs.am-nav-justify>.am-active>a:focus, .am-nav-tabs.am-nav-justify>.am-active>a:hover ,.am-nav-tabs>li.am-active>a,.am-nav-tabs>li.am-active>a:focus, .am-nav-tabs>li.am-active>a:hover { 81 | margin-right: 0px;border-bottom: 1px solid #0e90d2;border-radius: 0px;} 82 | 83 | /*底部*/ 84 | .footer {text-align:center;font-size: 12px;padding-top: 5px;} 85 | .footer-bd{ display:none;} 86 | 87 | @media screen and (min-width:640px){ 88 | form,.am-cf,.partner{max-width:640px;margin:20px auto ;} 89 | .footer-bd{ display:block;} 90 | .partner h3 {text-align:left;} 91 | .am-btn-group i { display:inline-block;border-radius:0px;border:0px;background-color:transparent ;} 92 | .am-btn-group span{display:inline-block;} 93 | .am-cf input{width: 100%;font-size: 16px;} 94 | /*底部*/ 95 | .footer {text-align:left; display:block;position: relative;margin: 0px auto; padding: 7px 0px 9px; margin-top:20px;max-width: 1200px;} 96 | .footer .footer-bd p, .footer .footer-hd p {margin-bottom: 8px;line-height: 27px;text-align:left;border-bottom:1px solid #ddd ;} 97 | .footer .footer-hd a { margin: 0px 4px;white-space: nowrap;color: #6C6C6C;} 98 | .footer .footer-hd b { margin: 0px 3px;font-weight: 400;color: #DDD;} 99 | .footer .footer-bd p{ border-bottom:none;} 100 | 101 | 102 | } 103 | @media screen and (min-width:1025px){ 104 | 105 | .login-box,.login-box2 {width: 100%;max-width:360px;height: 430px;position: absolute;margin-top:20px;margin-left:0px;background:#f8f8f8;right:2%;padding:10px 20px;} 106 | .login-box2 {height:430px;} 107 | .login-boxtitle {max-width: 1000px;margin: 0px auto;height: 60px;} 108 | .login-boxtitle img{height:60px;} 109 | .login-banner,.res-banner{width:100%;height:470px; background:#fd7a72;} 110 | .login-main,.res-main{max-width:1000px;height:470px; margin:0px auto; position:relative;} 111 | 112 | /*头部*/ 113 | .login-boxtitle{display: block;} 114 | .zcnext{right: 20px;top: 15px;} 115 | /*背景*/ 116 | .login-banner-bg{display:block;float:left;} 117 | .am-btn-primary{width:100%;} 118 | 119 | /*修改的样式*/ 120 | #doc-my-tabs li.am-active a,#doc-my-tabs li a{ background:#f8f8f8;} 121 | .am-nav-tabs>li>a,.am-nav-tabs.am-nav-justify>li>a,.am-nav-tabs.am-nav-justify>.am-active>a,.am-nav-tabs>li.am-active>a, .am-nav-tabs>li.am-active>a:focus, .am-nav-tabs>li.am-active>a:hover {border: none; } 122 | } 123 | 124 | -------------------------------------------------------------------------------- /static/css/sortstyle.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* CSS Document */ 3 | /*导航*/ 4 | body{background: #F8F8F8;} 5 | dt + dd {margin-top:0px;} 6 | img{width:100%;} 7 | #nav{margin-top:52px ;} 8 | #meauBack a{position: absolute;right:10px;top:0px;font-size:14px ;height:36px;line-height:36px;color:#fff;width:auto;} 9 | 10 | #nav .category-content{ position:relative; width:100%; float: left;} 11 | #nav .category-content .long-title{background:#d2364c;color:#fff ;display: block;width:100%;} 12 | #nav .category-content .all-goods { display: block; width:100px;height: 36px; padding: 0; border-radius: 5px 5px 0 0;text-align: center; font-size: 14px; font-weight: 600; line-height: 36px;} 13 | #nav .category-content .all-goods em{ font: 12px/36px "Microsoft YaHei"; } 14 | .status .list i,.category-content .down-ico,.category-content .list-cake i,.category-content .list-nacake i,.category-content .list-tz i,.category-content .list-ny i,.category-content .list-xb i,.category-content .list-xl i{ background: url(../images/index_ico_png32.png) no-repeat;} 15 | .category-content .category{ z-index:113; width:79px;height:100%;border: 1px solid #dadad9; border-top: none; background: #fefefe; box-shadow:2px 2px 2px #dedede;} 16 | .category-content .down-ico{ position: absolute; top: 48px; left: 75px; width: 10px; height: 6px; background-position: 0 -131px; z-index: 11111; } 17 | .category-content .category-list li { height:42px; margin-top: -2px;z-index:113;border:2px solid transparent ;} 18 | .category-content .category-list li.first{ margin-top: 0; } 19 | .category-content .category-list li.last .c-category-list{ border-bottom: none; } 20 | 21 | .category-content .category-name{ overflow:hidden; position: relative;} 22 | .category-content .category-name i{ display: none;} 23 | .category-content .category-list .bd-b{ height: 1px; margin: -1px 10px 0 10px; background: #eee; line-height: 1; font-size: 0; } 24 | 25 | .category-content .b-category-name { padding-top: 4px;line-height:32px;} 26 | .category-content .b-category-name b{ margin-left: 4px; font:400 12px/28px "宋体"; } 27 | .category-content .b-category-name a{ color: #4c4c4c; } 28 | .category-content .c-category-list a{ margin-right:8px; color:#626262; } 29 | .category-content .b-category-name .fr{ background-position:0 -629px; width:22px; height:22px; margin:10px 16px 0 0; } 30 | .category-content .s-category-name{ height:22px;} 31 | .category-content .s-category-name a{ margin:0 16px 0 0; font:12px/22px "宋体";} 32 | .category-content .category-info{ position:relative;height:100%; } 33 | .category-content .category-info em{ position:absolute; top:11px; right:5px; width: 13px; height: 13px; font: 12px/18px "宋体"; color: #9b9b9b;} 34 | .category-content .category .selected{ box-shadow:0px 2px 3px #ccc; margin-left: -1px; padding-left: 1px;z-index:999;} 35 | .category-content .selected .category-info{ border:none; text-decoration:none; background: #fff; } 36 | .category-content .menu-item { position: absolute;right:0px; z-index: 11;padding:0 0 0 2px;background: #fff; border:none; border-top: 1px solid #bbb\9;} 37 | .category-content .menu-item .area-in{ position: relative; z-index: 1; } 38 | .category-content .menu-item .area-bg{ padding: 10px 0px;} 39 | .shadow-bg{ display: none; position: relative; width: 100%; height: 0; } 40 | .shadow-b,.shadow-bg i{background: url(themes/mall/default/styles/default/images/index_ico.png) no-repeat; } 41 | .shadow-r,.shadow-l{ background: url(themes/mall/default/styles/default/images/shadow.png) no-repeat; } 42 | .shadow-bg i,.shadow-b{ position: absolute; width: 100%; height: 0; height: 2px\9; background-position: 0 -188px; background-repeat: repeat-x; } 43 | .shadow-bg i,.shadow-b{ _height:0; } 44 | .shadow-l{ position: absolute; left: 0; _left:-42px; top: 0; width: 0; width: 2px\9; height: 100%; background-position: right 0; background-repeat: repeat-y; } 45 | .shadow-r{ position: absolute; right: 0; top: 0; width: 0; width: 2px\9; height: 100%; background-repeat: repeat-y; } 46 | .category-content .menu-in{ display: none; } 47 | .category-content li.selected .menu-in{ display:block; } 48 | 49 | .category-content .menu-srot{width: 100%; overflow:hidden;} 50 | .menu-srot .sort-side{ overflow:hidden } 51 | .sort-side .dl-sort{ float:left; width:100%; } 52 | .sort-side dt { margin-top: 5px; font-size: 14px; font-weight: bold; color: #db3e54; text-align: left;padding-left:10px ;} 53 | .sort-side dd { float:left; padding:6px; width: 33.33%;} 54 | .sort-side dd a{ float:left; width:100%; letter-spacing:0.5px; line-height: 14px; color:#888; white-space:nowrap; overflow: hidden; text-overflow:ellipsis; padding: 3px 10px; border:1px solid #e6e6e6;text-align: center; } 55 | .sort-side dd a span.red{ color:#DB3E54; } 56 | 57 | .brand-side {position: relative;margin-top:20px; border-top: 1px solid #eae9e9;padding-top:5px ;} 58 | .brand-side .dl-sort{overflow: hidden;} 59 | .brand-side dt { position: absolute; top: -22px;font-size: 14px; font-weight: bold;} 60 | 61 | .category-content .menu-item{ left:83px;height:100%;background: #f8f8f8; } 62 | .category-content .menu-item.top{top: 36px;padding-right:10px ;} 63 | .category-content .menu-item.bottom{bottom: -2px;*bottom: -6px;bottom: -7px;} 64 | .am-dimmer {background:#fff ;} 65 | 66 | @media only screen and (min-width: 640px) { 67 | #nav{margin-top:0px ;} 68 | .sort-side .dl-sort {float: left;width:50%;font-size:16px ;} 69 | .category-content .category {width: 180px;} 70 | .category-content .category-info {width:176px;overflow: hidden;} 71 | .category-content .category-list li {height:80px;text-align: center;} 72 | .category-content .category-name i{top: 5px;display:block;left:50%;margin-left:-13px ;} 73 | .category-content .category-name i img{width: 25px; height: 25px; border-radius:25px;} 74 | 75 | .category-content .b-category-name {line-height:40px;font-size:16px ;} 76 | .category-content .menu-item {left: 183px;} 77 | .category-content .category-info em {position: absolute;top:50%;margin-top: -7px;} 78 | .sort-side dd a {line-height: 20px;padding:10px;width:90px;text-align: center;} 79 | } 80 | 81 | 82 | 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /static/AmazeUI-2.4.2/assets/css/admin.css: -------------------------------------------------------------------------------- 1 | /** 2 | * admin.css 3 | */ 4 | 5 | ul { 6 | margin-top: 0; 7 | } 8 | 9 | .admin-icon-yellow { 10 | color: #ffbe40; 11 | } 12 | 13 | .admin-header { 14 | font-size: 1.4rem; 15 | margin-bottom: 0; 16 | } 17 | 18 | .admin-header-list a:hover :after { 19 | content: none; 20 | } 21 | 22 | .admin-main { 23 | background: #f3f3f3; 24 | } 25 | 26 | .admin-menu { 27 | position: fixed; 28 | z-index: 10; 29 | bottom: 30px; 30 | right: 20px; 31 | } 32 | 33 | .admin-sidebar { 34 | width: 260px; 35 | min-height: 100%; 36 | float: left; 37 | border-right: 1px solid #cecece; 38 | } 39 | 40 | .admin-sidebar-list { 41 | margin-bottom: 0; 42 | } 43 | 44 | .admin-sidebar-list li a { 45 | color: #5c5c5c; 46 | padding-left: 24px; 47 | } 48 | 49 | .admin-sidebar-list li:first-child { 50 | border-top: none; 51 | } 52 | 53 | .admin-sidebar-sub { 54 | margin-top: 0; 55 | margin-bottom: 0; 56 | box-shadow: 0 16px 8px -15px #e2e2e2 inset; 57 | background: #ececec; 58 | padding-left: 24px; 59 | } 60 | 61 | .admin-sidebar-sub li:first-child { 62 | border-top: 1px solid #dedede; 63 | } 64 | 65 | .admin-sidebar-panel { 66 | margin: 10px; 67 | } 68 | 69 | .admin-content { 70 | width: auto; 71 | overflow: hidden; 72 | height: 100%; 73 | background: #fff; 74 | } 75 | 76 | .admin-content-list { 77 | border: 1px solid #e9ecf1; 78 | margin-top: 0; 79 | } 80 | 81 | .admin-content-list li { 82 | border: 1px solid #e9ecf1; 83 | border-width: 0 1px; 84 | margin-left: -1px; 85 | } 86 | 87 | .admin-content-list li:first-child { 88 | border-left: none; 89 | } 90 | 91 | .admin-content-list li:last-child { 92 | border-right: none; 93 | } 94 | 95 | .admin-content-table a { 96 | color: #535353; 97 | } 98 | .admin-content-file { 99 | margin-bottom: 0; 100 | color: #666; 101 | } 102 | 103 | .admin-content-file p { 104 | margin: 0 0 5px 0; 105 | font-size: 1.4rem; 106 | } 107 | 108 | .admin-content-file li { 109 | padding: 10px 0; 110 | } 111 | 112 | .admin-content-file li:first-child { 113 | border-top: none; 114 | } 115 | 116 | .admin-content-file li:last-child { 117 | border-bottom: none; 118 | } 119 | 120 | .admin-content-file li .am-progress { 121 | margin-bottom: 4px; 122 | } 123 | 124 | .admin-content-file li .am-progress-bar { 125 | line-height: 14px; 126 | } 127 | 128 | .admin-content-task { 129 | margin-bottom: 0; 130 | } 131 | 132 | .admin-content-task li { 133 | padding: 5px 0; 134 | border-color: #eee; 135 | } 136 | 137 | .admin-content-task li:first-child { 138 | border-top: none; 139 | } 140 | 141 | .admin-content-task li:last-child { 142 | border-bottom: none; 143 | } 144 | 145 | .admin-task-meta { 146 | font-size: 1.2rem; 147 | color: #999; 148 | } 149 | 150 | .admin-task-bd { 151 | font-size: 1.4rem; 152 | margin-bottom: 5px; 153 | } 154 | 155 | .admin-content-comment { 156 | margin-bottom: 0; 157 | } 158 | 159 | .admin-content-comment .am-comment-bd { 160 | font-size: 1.4rem; 161 | } 162 | 163 | .admin-content-pagination { 164 | margin-bottom: 0; 165 | } 166 | .admin-content-pagination li a { 167 | padding: 4px 8px; 168 | } 169 | 170 | @media only screen and (min-width: 641px) { 171 | .admin-sidebar { 172 | display: block; 173 | position: static; 174 | background: none; 175 | } 176 | 177 | .admin-offcanvas-bar { 178 | position: static; 179 | width: auto; 180 | background: none; 181 | -webkit-transform: translate3d(0, 0, 0); 182 | -ms-transform: translate3d(0, 0, 0); 183 | transform: translate3d(0, 0, 0); 184 | } 185 | .admin-offcanvas-bar:after { 186 | content: none; 187 | } 188 | } 189 | 190 | @media only screen and (max-width: 640px) { 191 | .admin-sidebar { 192 | width: inherit; 193 | } 194 | 195 | .admin-offcanvas-bar { 196 | background: #f3f3f3; 197 | } 198 | 199 | .admin-offcanvas-bar:after { 200 | background: #BABABA; 201 | } 202 | 203 | .admin-sidebar-list a:hover, .admin-sidebar-list a:active{ 204 | -webkit-transition: background-color .3s ease; 205 | -moz-transition: background-color .3s ease; 206 | -ms-transition: background-color .3s ease; 207 | -o-transition: background-color .3s ease; 208 | transition: background-color .3s ease; 209 | background: #E4E4E4; 210 | } 211 | 212 | .admin-content-list li { 213 | padding: 10px; 214 | border-width: 1px 0; 215 | margin-top: -1px; 216 | } 217 | 218 | .admin-content-list li:first-child { 219 | border-top: none; 220 | } 221 | 222 | .admin-content-list li:last-child { 223 | border-bottom: none; 224 | } 225 | 226 | .admin-form-text { 227 | text-align: left !important; 228 | } 229 | 230 | } 231 | 232 | /* 233 | * user.html css 234 | */ 235 | .user-info { 236 | margin-bottom: 15px; 237 | } 238 | 239 | .user-info .am-progress { 240 | margin-bottom: 4px; 241 | } 242 | 243 | .user-info p { 244 | margin: 5px; 245 | } 246 | 247 | .user-info-order { 248 | font-size: 1.4rem; 249 | } 250 | 251 | /* 252 | * errorLog.html css 253 | */ 254 | 255 | .error-log .am-pre-scrollable { 256 | max-height: 40rem; 257 | } 258 | 259 | /* 260 | * table.html css 261 | */ 262 | 263 | .table-main { 264 | font-size: 1.4rem; 265 | padding: .5rem; 266 | } 267 | 268 | .table-main button { 269 | background: #fff; 270 | } 271 | 272 | .table-check { 273 | width: 30px; 274 | } 275 | 276 | .table-id { 277 | width: 50px; 278 | } 279 | 280 | @media only screen and (max-width: 640px) { 281 | .table-select { 282 | margin-top: 10px; 283 | margin-left: 5px; 284 | } 285 | } 286 | 287 | /* 288 | gallery.html css 289 | */ 290 | 291 | .gallery-list li { 292 | padding: 10px; 293 | } 294 | 295 | .gallery-list a { 296 | color: #666; 297 | } 298 | 299 | .gallery-list a:hover { 300 | color: #3bb4f2; 301 | } 302 | 303 | .gallery-title { 304 | margin-top: 6px; 305 | font-size: 1.4rem; 306 | } 307 | 308 | .gallery-desc { 309 | font-size: 1.2rem; 310 | margin-top: 4px; 311 | } 312 | 313 | /* 314 | 404.html css 315 | */ 316 | 317 | .page-404 { 318 | background: #fff; 319 | border: none; 320 | width: 200px; 321 | margin: 0 auto; 322 | } 323 | 324 | 325 | /* 326 | fixed-layout 固定头部和边栏布局 327 | */ 328 | 329 | .fixed-layout, 330 | .fixed-layout body { 331 | height: 100%; 332 | overflow: hidden; 333 | } 334 | 335 | .fixed-layout .admin-header { 336 | position: fixed; 337 | top: 0; 338 | left: 0; 339 | right: 0; 340 | z-index: 1500; 341 | } 342 | 343 | .fixed-layout .admin-main { 344 | position: relative; 345 | height: 100%; 346 | padding-top: 51px; 347 | } 348 | 349 | .fixed-layout .admin-content, 350 | .fixed-layout .admin-sidebar { 351 | height: 100%; 352 | overflow-x: hidden; 353 | overflow-y: scroll; 354 | } 355 | 356 | .fixed-layout .admin-sidebar.am-active { 357 | z-index: 1600; 358 | } 359 | -------------------------------------------------------------------------------- /apps/users/templates/goods_list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {% load staticfiles %} 5 | 6 | 7 | 8 | 9 | 10 | 11 | ☆我的订单-助力2019☆ 12 | 13 | 14 | 15 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | {% if request.user.is_authenticated %} 43 |
44 |
45 | 46 | 47 |

我的订单 点击这里给我发消息

48 |

49 | 【价格说明】:
50 | github star 1¥ 1个,fork 2¥ 1个, follow 2 ¥1个, watch 3 ¥1个 , 评论3¥1个, issue4¥1个,修改commits 小绿点显示200¥
51 |

52 | 前往购买 53 | 我要支付(备注订单号) 54 | 55 |
56 |
57 | 58 | 59 |
60 | 61 |
62 | 63 | {% for gits in goods_list %} 64 |
65 |
66 |
67 |

68 | 订单编号:GA00000{{ gits.id }} 69 |

70 |

71 | 项目地址:{{ gits.project_url }} 72 |

73 | 82 |

83 | star数量:{{ gits.star_num }} 84 | fork数量:{{ gits.fork_num }} 85 |

86 |

87 | follow数量:{{ gits.follow_num }} 88 | watch数量:{{ gits.watch_num }} 89 |

90 |

91 | 订单价格:{{ gits.order_price }}元 92 |

93 |
94 | 订单时间:{{ gits.add_time }} 95 | 96 | {% if gits.is_flag %} 97 | 98 | {% else %} 99 | 100 | {% endif %} 101 | 102 | {% if gits.order_payed %} 103 | 104 | {% else %} 105 | 106 | {% endif %} 107 | 108 | 109 | 110 |
111 |
112 |
113 |
114 | {% endfor %} 115 | 116 | 117 | 118 |
119 |
120 | 121 | 122 | 123 |
124 | 125 |
126 |

© 2017-2019 浪潮

127 | 130 |
131 |
132 | {% else %} 133 |

此操作需要先登录 点击登录

134 | 135 |
136 |
137 | 138 |

客服qq-1310525081

139 |

140 | 1.都是先star完, 你看号的质量,满意付款,长期合作,【先刷在给钱】,
141 | 2.客户的任何信息是绝对的保密
142 | 3. 全是【2010-2017】年一直【活跃的,大部分有头像】,
143 | 4.【有代码提交的高质量】账号。每个用户都生成一份唯一的排序,这些号每天从10000个项目池里面随机star,
144 | 5. 点完你的我还需要随机点1-6个左右其他的项目混淆
145 | 6.还有几千次提交的2010-2017年的账号出售
146 | 7.安全系数无懈可击,一切随机的, 有时候1个账号star需要等10000秒, 当然可以修改参数【自助加星不需要等待】>
147 | 8.高安全系数,高质量,采用高匿无重复IP ,从源头治理风险
148 | 149 | 【价格说明】:
150 | github star 1¥ 1个,fork 2¥ 1个, follow 2 ¥1个, watch 3 ¥1个 , 评论3¥1个, issue4¥1个,修改commits 小绿点显示200¥
151 | 152 |

153 |
154 |
155 | 156 | {% endif %} 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | -------------------------------------------------------------------------------- /static/css/seastyle.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* CSS Document */ 3 | /*通用格式*/ 4 | *, *:after, *:before{ 5 | -webkit-box-sizing: border-box; 6 | -moz-box-sizing: border-box; 7 | -o-box-sizing: border-box; 8 | box-sizing: border-box; } 9 | /*任何标签、包括它前面、后面生成的内容都不要影响盒子的边框*/ 10 | ul, li, ol {list-style: none;} 11 | dl,dt,dd{ margin:0px auto; padding:0px;} 12 | p {margin: 0 0 .3rem 0; font-size:14px; } 13 | [class*="am-u-"] {padding-left:0rem;padding-right:0rem;} 14 | .am-thumbnails {margin-left: 0rem;margin-right: 0rem;} 15 | .am-thumbnail {margin-bottom:0;} 16 | .am-thumbnails > li {padding: 0 0rem 0.2rem .2rem;} 17 | img{ width:100%;} 18 | .price{color: #e4393c;font-weight: 600;} 19 | 20 | .theme-popover {z-index: 1009;overflow:visible;background:#fff;} 21 | 22 | 23 | /* select */ 24 | .sort{padding:5px 10px;font-size:12px} 25 | 26 | .suggest,.searchAbout{ display:none;} 27 | .select .title.font-normal{margin-top:70px;margin-left: 10px} 28 | .select li {margin: 10px 0 5px 0px;} 29 | .select dl{zoom:1;position:relative;line-height:24px; margin:10px 0px; } 30 | .select dl:after{content:" ";display:block;clear:both;height:0;overflow:hidden} 31 | .select dt{width:80%;margin-left:10%;margin-bottom:5px;position:absolute;cursor: pointer;height:24px;line-height:24px;} 32 | .select dd{float:left;display:inline;margin:0 0 5px 5px;} 33 | .select a{display:inline-block;white-space:nowrap;height:24px; line-height:24px;padding:0 10px;text-decoration:none;color:#000;border-radius:2px;} 34 | .select a:hover{color:#f60;background-color:#f3edc2} 35 | .select .selected a{color:#F00; border:#999 solid 1px;} 36 | ul.pagination{display:none;} 37 | /*搜索显示*/ 38 | .select-result{display: none;} 39 | li.select-result dl{padding: 10px 0 5px 30px;} 40 | li.select-result dt {left:-30px; top:10px;font-weight:bold;width:50px;} 41 | 42 | .select-no{color:#999} 43 | .select .select-result a{padding-right:20px;background: url("../images/close.png") right 9px no-repeat} 44 | .select .select-result a:hover{background-position:right -15px} 45 | .eliminateCriteria{display:none;line-height:21px;margin-top:4px;width:35px;float:right;color:#F00;cursor:pointer;} 46 | 47 | 48 | /*排序*/ 49 | .sort { margin-top:0px;width:100%; border:hidden;} 50 | .sort li{ float:left;width:33.33%;height:35px; line-height:35px; text-align:center; padding:0px 0px;} 51 | .sort li a{font-size:14px;} 52 | .sort li.big{display:none;} 53 | .sort li.first {color: #F03726;} 54 | 55 | 56 | /*筛选条件*/ 57 | .select-list{ float:left;display:inline; left:0;width:33.33%; height:30px;} 58 | 59 | .select-list dl dt{left:0px; cursor:pointer; top:-10px;text-align: center;} 60 | {display:none ;float:left; top:20px; padding-top:5px; z-index:10; left:0px; width:300%;position:absolute;} 61 | .select-list .dd-conent{display:none ;float:left; top:20px; padding-top:5px; z-index:10; left:0px; width:300%;position:absolute; background:#fff;overflow: hidden;} 62 | .select-list .dd-conent dd{width:33.33% ;text-align: center;margin-left: 0px;height:25px ;} 63 | dl#select2 .dd-conent{ left:-100%; right:-100%;} 64 | dl#select3 .dd-conent{ left:-200%; right:0px;} 65 | 66 | .am-badge{font-size:12px ;padding:0px 0px;background-color: #999999;color: #ffffff;} 67 | .theme-popover-mask{z-index:5;width: 100%;height: auto;position:fixed ;background:#000 ;top:0;opacity: 0.6;} 68 | .theme-popover{width: 100%;} 69 | 70 | /*搜索结果*/ 71 | .i-pic.limit {margin:5px;border: 1px #e8e8e8 solid;overflow: hidden;position: relative;cursor: pointer;} 72 | .number.fl{position: absolute;bottom:5px;right:5px ;} 73 | .price.fl{padding: 5px;} 74 | /*分页*/ 75 | .am-pagination li{ float:none;} 76 | .footer {margin-left: 0px;} 77 | 78 | .search-side{display: none;} 79 | .search-content{margin:0px 5px ;} 80 | 81 | 82 | .limit p.title,.i-pic.check p.title{padding:0px 5px;margin:5px 0px;overflow:hidden;height:18px;line-height:18px ;} 83 | 84 | 85 | 86 | @media only screen and (min-width: 640px) { 87 | .search-content{margin:0px 0px ;} 88 | .theme-popover {margin-left: 10px;margin-right: 10px;width: auto;} 89 | 90 | /* select */ 91 | .select-list .dd-conent dd{width:auto;text-align: center;margin-left:5px;} 92 | 93 | .select li.select-result{display: none;} 94 | .suggest,.searchAbout,ul.pagination{ display:block;} 95 | .select .title.font-normal{margin-top:0px;margin-left:0px} 96 | .select,.sort{padding:5px 10px;box-shadow: 0px 0px 2px #999;margin-top:5px;background: #fff;} 97 | .searchAbout{padding:10px;} 98 | 99 | .select-list{width:100%;padding:0px 0px;} 100 | .select li{list-style:none;padding:0px 0px 0px 100px;border-top:#eee 1px dashed;float: none;display: block;height: auto;} 101 | 102 | .select-result dl dt{width:100px;} 103 | 104 | .eliminateCriteria{width:80px;float:right;margin-right:20px;} 105 | 106 | .am-badge{font-size:14px ;padding:0px 0px;background: none;color: #000000;} 107 | 108 | 109 | 110 | /*排序*/ 111 | .sort{padding:0px 0px;border-radius: 0px 0px 4px 4px; margin:10px 10px; font-size: 12px;width:auto;overflow: hidden;} 112 | .sort li{ display:inline; height:35px; line-height:35px; padding:0px 20px;width:auto;border-right:1px dotted #ddd;} 113 | .sort li.big{display:block;border: none;} 114 | .sort li.first{background: #F5F5F5;color: #000;} 115 | 116 | 117 | /*筛选条件*/ 118 | .select-list,.select-list dl{width:100%;} 119 | .select dl dt{left:-100px;top:10px;} 120 | .select-list dl dt{top:5px;} 121 | .select dt{width:100px;margin-left:0;text-align:center;color:#666;height:24px;line-height:24px;} 122 | .select-list .dd-conent{ display:inline-block;float:left;background: none;width:100%;position: static;} 123 | dl#select2 .dd-conent,dl#select3 .dd-conent{ left:0; right:0;} 124 | 125 | /*搜索结果*/ 126 | .i-pic.limit {padding:0px;margin:10px;border: 1px #e8e8e8 solid;background:#fff ;} 127 | li.select-result dl {padding: 10px 0px;} 128 | 129 | .scoll{ margin-top:70px;} 130 | .am-slider-default .am-direction-nav a {z-index:0;} 131 | span.am-icon-th-list{color:orangered;margin-right:1px ;} 132 | 133 | 134 | 135 | /*改写的布局*/ 136 | .flood li{width:33.3%;float: left; text-align: center;} 137 | .smallnav img{max-width:60px;} 138 | .smallnav{ font-size:14px;} 139 | 140 | 141 | /*文字布局*/ 142 | .limit p.title,.i-pic.check p.title{padding:0px 10px;overflow:hidden;height:36px;line-height:18px ;} 143 | .i-pic .price.fl{font-size:16px ;} 144 | } 145 | 146 | @media only screen and (min-width:1025px) { 147 | .search{margin: 0px 40px 0px 0px;padding-top:10px ;} 148 | .search-list{max-width: 1000px;margin:0px auto ;position: relative;} 149 | .nav.white{padding-left:0px} 150 | 151 | /*选中效果*/ 152 | .search-list ul li:hover .i-pic.limit,.search-side li:hover .i-pic.check{box-shadow:0px 12px 12px -10px rgba(0,0,0,.4);} 153 | 154 | } 155 | 156 | @media only screen and (min-width:1260px) { 157 | .am-g-fixed {max-width: 1200px; } 158 | .search-list{max-width: 1200px;margin:0px auto ;position: relative;} 159 | .search-content{float: left;width:80%;} 160 | .search-side{display: block;float: left;width:20%;padding:0px 10px ;} 161 | .side-title{height: 35px;line-height: 35px;padding: 0px 20px;border-radius: 0px 0px 4px 4px;margin: 10px 0px;box-shadow: 0px 0px 2px #999;text-align: center ;color: #e4393c;font-size:14px ;background:#fff;} 162 | .search-side li{width: 100%;overflow: hidden;} 163 | .i-pic.check{border:1px solid #ddd ;margin:10px auto;overflow: hidden;cursor: pointer;background:#fff ;position: relative;} 164 | .i-pic.check p.check-title{text-align: center;} 165 | .i-pic.check p.check-title{height:36px;font-size:20px ;margin:5px 10px;} 166 | } 167 | 168 | 169 | 170 | -------------------------------------------------------------------------------- /static/css/cartstyle.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | body, button, input, select, textarea { 3 | font: 12px/1.5 arial,"Lantinghei SC","Microsoft Yahei";; 4 | } 5 | .concent{overflow:hidden; width:100%;max-width: 1000px;margin: 0px auto; margin-top:60px; } 6 | .cart-table-th ,.td-sum{display: none;} 7 | 8 | /*title*/ 9 | 10 | .cart-table-th .th-chk { font-size: 12px; text-align: left; height: 50px;line-height: 50px;} 11 | .th-chk, .td-chk {width:40px;} 12 | .cart-table-th .th-chk .select-all {position: absolute;left: 0px; top: 0px; width: 80px;height:50px;line-height: 50px;} 13 | .cart-table-th .th-chk .select-all span{ position:absolute;top:2px;} 14 | 15 | /*信息标题*/ 16 | .cart-table-th .th {float: left;} 17 | .cart-table-th {line-height: 50px;color: #3C3C3C;} 18 | .cart-table-th .th-item .td-inner {padding-left: 91px;} 19 | 20 | .th .td-inner {padding: 0px 0px 0px 10px;} 21 | 22 | /*操作标题*/ 23 | .th-op, .td-op {width: 84px;padding: 0px 0px 0px 15px;} 24 | .td-oplist,.th.th-oplist {width:24%;padding: 0px 0px 0px 18px;} 25 | .th-oplist{ padding-top:5px;} 26 | 27 | /*广告-优惠信息*/ 28 | .bundle-hd {height: 28px;padding-top: 4px;position: relative;background:#eee;} 29 | .bundle-hd .icon-bd-title {position: absolute;bottom: -7px; left: 50%; width: 11px;margin-left: -6px;height: 6px; background-position: 0px -145px;} 30 | .bundle-hd .bd-promos {float: left;color: #6C6C6C;line-height: 22px;} 31 | .bundle-hd .bd-has-promo { color: #F40;float: left;} 32 | .bundle-hd .bd-promos .act-promo {margin-right: 20px;float: left;} 33 | .bundle.bundle-last{overflow: hidden;border-top:#f5f5f5 1px solid ;border-bottom:#f5f5f5 1px solid ;background: #fff;} 34 | 35 | .list-change{position: absolute;top:4px;right:0;width: 50px;text-align:center;border-left:1px solid #F5F5F5 ;cursor: pointer;} 36 | 37 | /*主体*/ 38 | .item-content{width:100%;overflow: hidden;position: relative; padding-bottom:15px;border-top:#F5F5F5 1px solid;} 39 | .check{ margin-top:20px; margin-left:10px; margin-right:3px;} 40 | .item-content .td {float: left;} 41 | 42 | /*商品信息*/ 43 | .td-chk {width:30px;position: absolute;top:10px;left:10px} 44 | .td.td-item{float:left;width:100%;padding-left:30px ;} 45 | /*图片*/ 46 | .td-item .item-info {margin: -3px 0px 0px 91px;} 47 | .item-content .item-pic a {text-align: center;} 48 | .item-content .item-pic {width: 80px; height: 80px; border: 1px solid #EEE; float: left;overflow: hidden;margin-top:20px;margin-left:3px;} 49 | .td-item .item-basic-info { height: 40px; margin-top:20px; text-align:left} 50 | /*规格*/ 51 | .td.td-info{position: absolute;left:0px;top:55px;width:100%;overflow: hidden;padding-left: 120px;line-height: 16px;} 52 | .td.td-info .item-props{width:100%;} 53 | .sku-line {color: #9C9C9C;overflow: hidden;} 54 | .btn-edit-sku{display: none;} 55 | /*价格*/ 56 | .td.td-price{position: absolute;left:120px;bottom:10px;} 57 | .price-content {padding:3px 0px 0px 0px;line-height: 1;} 58 | .item-content .price-original { color: #9C9C9C;text-decoration: line-through;position: absolute;bottom:1px; left:40px;font-size:10px ;} 59 | .item-content .price-now {color: #3C3C3C; font-weight: 600;font-size:14px ;} 60 | /*数量*/ 61 | .td.td-amount {position: absolute;bottom:10px;right:0 ;} 62 | .td.td-amount .sl{width:30px;margin:0px auto;} 63 | .td.td-amount .sl .min,.td.td-amount .sl .add{display: none;} 64 | .td.td-amount .sl input.text_box{border: none;} 65 | 66 | /*操作*/ 67 | .td-op a {position: absolute;left:5px; top: 80px;} 68 | .btn-fav{display: none;} 69 | 70 | /*全选、删除按钮*/ 71 | .float-bar-wrapper{position:fixed;overflow: hidden;bottom:50px;width: 100%;background:#fff ;border-top:1px solid #e5e5e5 ;} 72 | .float-bar-wrapper .select-all { float: left; width: 65px;height: 50px;line-height: 50px;padding-left: 5px;margin-top:-3px;position:relative;} 73 | .float-bar-wrapper .select-all .cart-checkbox { display: inline-block;width: 15px;margin-right:5px;} 74 | .float-bar-wrapper .select-all span {position: absolute;top: 2px;} 75 | .float-bar-wrapper .operations {float: left;line-height: 48px;height: 48px;} 76 | .float-bar-wrapper .operations a {margin-left:5px; float: left;} 77 | .J_BatchFav,.amount-sum{display: none;} 78 | .check-all.check{margin-top:20px ;} 79 | /*结算功能*/ 80 | .float-bar-right {float: right;position: absolute; right: 0px;top: 0px; z-index: 4;padding-left: 20px;} 81 | .amount-sum,.price-sum,.btn-area {float: left;height: 48px;color: #3C3C3C;line-height:48px;} 82 | 83 | .amount-sum em {line-height: 50px;padding: 0px 5px;} 84 | 85 | .price-sum .price { color: #F40;font-weight: 400; font-size: 18px; line-height: 48px;font-family: Arial;vertical-align: middle;margin-right:15px;} 86 | .btn-area{width:80px;background:#F40;text-decoration: none; text-align: center;} 87 | .submit-btn {line-height:48px;font-family: "Lantinghei SC","Microsoft Yahei";font-size:16px;color: #fff;} 88 | 89 | 90 | @media only screen and (min-width:640px) 91 | 92 | { 93 | 94 | .concent{margin-top:0;} 95 | .wp{overflow: hidden;border: #f5f5f5 2px solid;} 96 | #cartTable {background: #fff;} 97 | .bundle.bundle-last{border: #f5f5f5 1px solid;} 98 | .cart-table-th, .td-sum{display: block;} 99 | .th.th-op,.list-change{display: none;} 100 | 101 | .item-content{overflow: visible;height:115px ;} 102 | .bundle-hd{border-bottom: #CCC 1px dotted;padding:5px 0px;height:auto;overflow: hidden;background:#eee;} 103 | .bundle-hd .bd-promos { margin-left: 35px;} 104 | .td.td-amount .sl{width:auto;margin-right:0 ;} 105 | .td.td-amount .sl .min,.td.td-amount .sl .add{display:inline-block;} 106 | .td.td-amount .sl input.text_box{border:1px solid #ddd;} 107 | /*布局 */ 108 | .cart-table-th .th-item .td-inner {padding-left:0px;} 109 | .th.th-item,.td.td-item,.td.td-info{width:50%;} 110 | .th.th-item{margin-right:-40px;} 111 | /*价格*/ 112 | .th.th-price,.td.td-price,.th.th-amount,.td.td-amount{position:static;width:15%;text-align: center;} 113 | .td.td-price,.td.td-amount,.td.td-sum,.td.td-oplist{margin-top: 20px;} 114 | .item-content .price-original {position:static; font-size: 12px;} 115 | .price-content {padding-top: 0;} 116 | /*操作*/ 117 | .th.th-sum,.td.td-sum{width:20%;text-align: center;} 118 | .td-op a {position: absolute;top: -25px;left:80%;width:20%;text-align: center;} 119 | /*结算功能*/ 120 | .float-bar-wrapper,.float-bar-right{position: static;border: #f5f5f5 1px solid;background:#eee ;} 121 | .J_BatchFav,.amount-sum,.price-sum{display: block;margin-right:10px ;} 122 | .float-bar-wrapper{margin-top:10px ;} 123 | .footer{margin-top: 40px;} 124 | } 125 | 126 | @media only screen and (min-width:1025px) 127 | 128 | { 129 | .item-content {overflow: hidden;} 130 | .td.td-item {width: 30%;} 131 | .td.td-info{width:20%;position: static;padding-left: 0;} 132 | .td.td-info .item-props{position: static;text-align:center;padding-top:17px;margin-top:0 ;} 133 | .item-props.item-props-can{height:100px;border: 1px dashed transparent;} 134 | /*价格*/ 135 | .th.th-price,.td.td-price,.th.th-sum,.td.td-sum{width:10%;text-align: center;} 136 | /*操作*/ 137 | .th.th-amount,.td.td-amount,.th.th-op,.td.td-op{display:block;width:15%;text-align: center;} 138 | .td-op{margin-top: 20px;} 139 | .td-op a {position: static;width: 100%;} 140 | .td-op .btn-fav{display: block;} 141 | .item-content .td .item-props-can{position: relative;} 142 | .item-content .td .item-props-can:hover,.item-content .td .item-props-can.selected{border-color:#F60;background: #FFF none repeat scroll 0% 0%;} 143 | .item-props.item-props-can:hover .btn-edit-sku ,.item-props.item-props-can .btn-edit-sku.selected {display: block;position: absolute;right: -1px;top:-1px;color: #FFF;cursor: pointer;background: #F60 none repeat scroll 0% 0%;padding: 2px 4px 0px;width: auto;height: 16px;line-height: 1;} 144 | 145 | } 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | -------------------------------------------------------------------------------- /static/css/infstyle.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* CSS Document */ 3 | [class*="am-u-"] {padding-left:0;padding-right:0;} 4 | .user-infoPic{ overflow:hidden; position:relative;margin:0px 10px ;padding:0px 5px 0px 0px;border-bottom:1px solid #E4EAEE;} 5 | .filePic{position: relative;width:60px;text-align: center;float:right; } 6 | .inputPic{ cursor:pointer;opacity:0;ilter:alpha(opacity=0);width:100%;height:100%;position: absolute;top: 0;left: 0;z-index: 9;} 7 | p.am-form-help{ font-size:14px;font-weight: 600; margin:0px auto; position:absolute; top:25px;color: #000000;} 8 | .am-selected-list {font-size:14px; } 9 | .am-img-thumbnail {padding:0px;margin:2px ;} 10 | .info-m{ display:none;} 11 | 12 | /*修改信息*/ 13 | .info-main{max-width:800px;padding:0px 10px ;} 14 | .am-form-group{margin:10px 0px ;border-bottom:1px solid #E4EAEE;height:34px ;} 15 | .am-form-horizontal .am-form-label{padding-top:8px ;text-align:left ;} 16 | .am-form textarea,.am-form select, .am-form textarea, .am-form input[type="text"], .am-form input[type="password"], .am-form input[type="datetime"], .am-form input[type="datetime-local"], .am-form input[type="date"], .am-form input[type="month"], .am-form input[type="time"], .am-form input[type="week"], .am-form input[type="tel"], .am-form input[type="email"], .am-form input[type="url"], .am-form input[type="search"], .am-form input[type="tel"], .am-form input[type="color"], .am-form-field,.am-btn{ font-size:14px;} 17 | .birth-select,.birth-select2 {float:left; margin-right:5px; vertical-align:middle;} 18 | .birth-select select{float:left; width:60px;background: none;border:none ;padding-top:9px ;} 19 | .birth-select2 select{float:left; width:40px;background: none;border: none;padding-top:9px ;} 20 | 21 | .birth button{border:none} 22 | .birth .am-selected-icon::before{opacity: 0;} 23 | .user-info{width:100%; max-width:900px;overflow:hidden;} 24 | .user-safety{width:100%; max-width:900px;overflow:hidden;} 25 | 26 | /*按钮*/ 27 | .info-btn{text-align: center;} 28 | .fore3 .am-btn-secondary {color: #000;background-color:transparent;border:none;} 29 | 30 | /*地址*/ 31 | .am-form-content.address a,.am-form-group.safety a{width:80%;float: right;text-align: right;padding-right:5px;} 32 | p.new-mu_l2cw{margin: 0px;} 33 | p.new-mu_l2cw span{height:17px;line-height:17px ;} 34 | 35 | /*性别*/ 36 | .sex .am-ucheck-icons{top:8px;} 37 | /*安全设置*/ 38 | .user-safety .check {max-width:900px;} 39 | .user-safety .check li{overflow:hidden; margin:5px 10px; padding:8px 0px; border-bottom:1px solid #E4EAEE;} 40 | .user-safety .check .m-left{float: left;} 41 | .user-safety .check .fore1 {width:80px;font-size: 14px; font-weight:600; line-height:21px;padding-top:5px ;} 42 | .user-safety .check .fore2 { display:none;text-align:left;font-size: 12px; line-height:21px;} 43 | .user-safety .check .fore3 {text-align:center;font-size: 12px; float:right; line-height:21px;} 44 | .am-btn{ padding:5px;} 45 | .user-safety .check i{margin-left:10px} 46 | .user-safety .fore3 .am-btn{width:70px;} 47 | 48 | 49 | /*表单配置*/ 50 | .am-form input[type="text"], .am-form input[type="password"], .am-form input[type="datetime"], .am-form input[type="datetime-local"], .am-form input[type="date"], .am-form input[type="month"], .am-form input[type="time"], .am-form input[type="week"], .am-form input[type="tel"], .am-form input[type="email"], .am-form input[type="url"], .am-form input[type="search"], .am-form input[type="tel"], .am-form input[type="color"]{background:none ;border: none;} 51 | input::-webkit-input-placeholder{text-align:right;} 52 | input{text-align: right;} 53 | .am-form-label{font-size:14px ;font-weight: 600;width: auto;} 54 | .sex,.birth{float: right;padding-right: 5px;margin-left:0 ;} 55 | 56 | .am-form-content small{display: none;} 57 | .am-selected{width: auto;} 58 | 59 | @media only screen and (min-width:640px) 60 | { 61 | .am-form-group.address,.am-form-group.safety,.am-form-help{display: none;} 62 | .sex, .birth {float:none;margin-left: 85px;} 63 | .am-radio-inline input[type="radio"]{margin-left: 0px;} 64 | input::-webkit-input-placeholder,input{text-align:left;} 65 | .info-main{margin:0% 5%;} 66 | .user-infoPic,.am-form-group{border:none;} 67 | .am-form-group {margin: 20px 0px;} 68 | .am-form input[type="text"], .am-form input[type="password"], .am-form input[type="datetime"], .am-form input[type="datetime-local"], .am-form input[type="date"], .am-form input[type="month"], .am-form input[type="time"], .am-form input[type="week"], .am-form input[type="tel"], .am-form input[type="email"], .am-form input[type="url"], .am-form input[type="search"], .am-form input[type="tel"], .am-form input[type="color"],.birth-select select,.birth-select2 select { 69 | border:1px solid #E4EAEE;} 70 | input {text-align: left;} 71 | .am-form-group{height:50px ;} 72 | .am-form-horizontal .am-form-label {padding-top:8px;} 73 | .am-form-content small{display:block;margin: 5px 5px;color: #ccc;} 74 | /*生日*/ 75 | 76 | .birth-select select,.birth-select2 select { 77 | -webkit-appearance: none !important; 78 | -moz-appearance: none !important; 79 | -webkit-border-radius: 0; 80 | background: #ffffff url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+') no-repeat 100% center; 81 | } 82 | 83 | .birth-select{width:38%;margin-right:0 ;position: relative;height:32px ;line-height:32px;} 84 | .birth-select2{width:30%;margin-right:0 ;margin-left: 1%;position: relative;height:32px ;line-height: 32px;} 85 | .birth-select select,.birth-select2 select{width:90%;} 86 | .birth-select em,.birth-select2 em{position: absolute;right:0px ;} 87 | .birth-select .am-selected,.birth-select2 .am-selected {width:auto;position: absolute ;left:0px;right:20px;} 88 | .birth button{border:1px solid #E4EAEE} 89 | .birth .am-selected-icon::before{opacity: 1;margin:5px 0px 5px -10px;} 90 | .birth .am-selected-status{padding-top:3px;} 91 | /*头像、安全评分*/ 92 | .user-infoPic{position: relative;margin:20px 5% 50px ;height:130px;border-bottom:1px solid #eee ;} 93 | .filePic{width:100px; float:left;margin-left:15px;margin-top:15px ;} 94 | .info-m{ display:block;float:left;overflow: hidden;line-height: 24px;position: absolute;left:6%;top:25px;margin-left: 120px;} 95 | .safeText{display: block;color: #fff;position: relative;text-align:left ;} 96 | .progressBar{width: 190px;height: 8px;background:url(../images/icon_bar.png) no-repeat;position: relative;overflow: hidden;border-radius: 5px;margin-top:5px ;} 97 | .progress {width: 190px;height: 8px;position: absolute;top: 0;background-color: #ffeb68;border-radius: 5px;} 98 | /*会员*/ 99 | .vip {margin-top:15px ;} 100 | .vip span{display: block;width: 51px;height: 22px;background: url(../images/icon_progress_24.png) no-repeat 0 0;float:left;margin-right:5px ;} 101 | .user-info{overflow:hidden; margin-bottom:15px;} 102 | /*安全设置*/ 103 | .user-safety .check li{padding:15px 0px;position: relative;border: none;} 104 | .user-safety .check .fore2 { display:block;} 105 | .user-safety .check .fore1 {width:100px;font-size: 16px;} 106 | /*小图标*/ 107 | .user-safety .check i{left:0;display: inline-block;vertical-align:middle;background-image: url("../images/sprite.png"); 108 | width: 40px;height: 40px;position: absolute;margin-top:5px ;} 109 | .i-safety-lock {background-position: -90px -45px;} 110 | .i-safety-wallet {background-position: 0px -135px;} 111 | .i-safety-iphone{background-position: -45px 0px;} 112 | .i-safety-mail {background-position: 0px -90px} 113 | .i-safety-idcard {background-position: -90px -90px;} 114 | .i-safety-security {background-position: -135px -45px;} 115 | 116 | .user-safety .check .m-left{margin-left:70px;} 117 | .user-safety .check .fore3{margin-top:10px;} 118 | /*按钮*/ 119 | .fore3 .am-btn-secondary {color: #fff;background-color: #3bb4f2;border:1px solid #3bb4f2;} 120 | } 121 | 122 | @media only screen and (min-width:1025px) 123 | { 124 | .info-main {margin:0% 10%;} 125 | .user-safety .check ul{margin:0 5% ;} 126 | 127 | 128 | } 129 | @media only screen and (min-width:1260px) 130 | { 131 | 132 | } 133 | 134 | --------------------------------------------------------------------------------