-
35 | {% for good in goods_obj %}
36 |
-
37 |
38 |
{{ good.name }}
39 | 44 |
45 | {% endfor %}
46 |
├── book_shop ├── __init__.py ├── wsgi.py ├── urls.py └── settings.py ├── app ├── migrations │ ├── __init__.py │ ├── 0002_goods_add_datetime.py │ ├── 0004_auto_20190425_0251.py │ ├── 0003_auto_20190423_0835.py │ └── 0001_initial.py ├── templatetags │ ├── __init__.py │ └── tags.py ├── __init__.py ├── tests.py ├── apps.py ├── admin.py ├── utils.py ├── urls.py ├── models.py └── views.py ├── db.sqlite3 ├── media ├── 主页.png ├── 个人中心.png ├── 书籍详情页.png ├── 订单页面.png ├── 购物车页.png ├── goods │ ├── 简爱.jpg │ ├── 动物博物馆.jpg │ └── python.jpg └── images │ └── 简爱_20190423064841_720.jpg ├── static ├── images │ ├── book.jpg │ ├── down.png │ ├── fruit.jpg │ ├── goods.jpg │ ├── icons.png │ ├── logo.png │ ├── slide.jpg │ ├── slide.png │ ├── goods02.jpg │ ├── icons02.png │ ├── left_bg.jpg │ ├── logo02.png │ ├── slide02.jpg │ ├── slide02.png │ ├── slide03.jpg │ ├── slide03.png │ ├── slide04.jpg │ ├── pay_icons.png │ ├── shop_cart.png │ ├── goods_detail.jpg │ ├── interval_line.png │ ├── login_banner.png │ ├── goods │ │ ├── goods001.jpg │ │ ├── goods002.jpg │ │ ├── goods003.jpg │ │ ├── goods004.jpg │ │ ├── goods005.jpg │ │ ├── goods006.jpg │ │ ├── goods007.jpg │ │ ├── goods008.jpg │ │ ├── goods009.jpg │ │ ├── goods010.jpg │ │ ├── goods011.jpg │ │ ├── goods012.jpg │ │ ├── goods013.jpg │ │ ├── goods014.jpg │ │ ├── goods015.jpg │ │ ├── goods016.jpg │ │ ├── goods017.jpg │ │ ├── goods018.jpg │ │ ├── goods019.jpg │ │ ├── goods020.jpg │ │ └── goods021.jpg │ └── register_banner.png ├── css │ ├── reset.css │ └── main.css └── js │ ├── slide.js │ ├── register.js │ ├── jquery.cookie.js │ └── jquery-ui.min.js ├── DjangoUeditor3-master.zip ├── manage.py ├── templates ├── app │ ├── user │ │ ├── base_user.html │ │ ├── UserAddr.html │ │ ├── CreateOrder.html │ │ ├── UserOrder.html │ │ ├── UserInfo.html │ │ └── UserCar.html │ ├── login.html │ ├── register.html │ ├── index.html │ ├── base_site.html │ ├── shop_list.html │ └── detail.html └── Base.html └── README.md /book_shop/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/__init__.py: -------------------------------------------------------------------------------- 1 | # import pymysql 2 | # 3 | # pymysql.install_as_MySQLdb() 4 | -------------------------------------------------------------------------------- /db.sqlite3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/db.sqlite3 -------------------------------------------------------------------------------- /media/主页.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/media/主页.png -------------------------------------------------------------------------------- /app/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /media/个人中心.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/media/个人中心.png -------------------------------------------------------------------------------- /media/书籍详情页.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/media/书籍详情页.png -------------------------------------------------------------------------------- /media/订单页面.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/media/订单页面.png -------------------------------------------------------------------------------- /media/购物车页.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/media/购物车页.png -------------------------------------------------------------------------------- /media/goods/简爱.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/media/goods/简爱.jpg -------------------------------------------------------------------------------- /media/goods/动物博物馆.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/media/goods/动物博物馆.jpg -------------------------------------------------------------------------------- /media/goods/python.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/media/goods/python.jpg -------------------------------------------------------------------------------- /static/images/book.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/book.jpg -------------------------------------------------------------------------------- /static/images/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/down.png -------------------------------------------------------------------------------- /static/images/fruit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/fruit.jpg -------------------------------------------------------------------------------- /static/images/goods.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods.jpg -------------------------------------------------------------------------------- /static/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/icons.png -------------------------------------------------------------------------------- /static/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/logo.png -------------------------------------------------------------------------------- /static/images/slide.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/slide.jpg -------------------------------------------------------------------------------- /static/images/slide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/slide.png -------------------------------------------------------------------------------- /DjangoUeditor3-master.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/DjangoUeditor3-master.zip -------------------------------------------------------------------------------- /static/images/goods02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods02.jpg -------------------------------------------------------------------------------- /static/images/icons02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/icons02.png -------------------------------------------------------------------------------- /static/images/left_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/left_bg.jpg -------------------------------------------------------------------------------- /static/images/logo02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/logo02.png -------------------------------------------------------------------------------- /static/images/slide02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/slide02.jpg -------------------------------------------------------------------------------- /static/images/slide02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/slide02.png -------------------------------------------------------------------------------- /static/images/slide03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/slide03.jpg -------------------------------------------------------------------------------- /static/images/slide03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/slide03.png -------------------------------------------------------------------------------- /static/images/slide04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/slide04.jpg -------------------------------------------------------------------------------- /app/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class AppConfig(AppConfig): 5 | name = 'app' 6 | -------------------------------------------------------------------------------- /static/images/pay_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/pay_icons.png -------------------------------------------------------------------------------- /static/images/shop_cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/shop_cart.png -------------------------------------------------------------------------------- /static/images/goods_detail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods_detail.jpg -------------------------------------------------------------------------------- /static/images/interval_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/interval_line.png -------------------------------------------------------------------------------- /static/images/login_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/login_banner.png -------------------------------------------------------------------------------- /static/images/goods/goods001.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods001.jpg -------------------------------------------------------------------------------- /static/images/goods/goods002.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods002.jpg -------------------------------------------------------------------------------- /static/images/goods/goods003.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods003.jpg -------------------------------------------------------------------------------- /static/images/goods/goods004.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods004.jpg -------------------------------------------------------------------------------- /static/images/goods/goods005.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods005.jpg -------------------------------------------------------------------------------- /static/images/goods/goods006.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods006.jpg -------------------------------------------------------------------------------- /static/images/goods/goods007.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods007.jpg -------------------------------------------------------------------------------- /static/images/goods/goods008.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods008.jpg -------------------------------------------------------------------------------- /static/images/goods/goods009.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods009.jpg -------------------------------------------------------------------------------- /static/images/goods/goods010.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods010.jpg -------------------------------------------------------------------------------- /static/images/goods/goods011.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods011.jpg -------------------------------------------------------------------------------- /static/images/goods/goods012.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods012.jpg -------------------------------------------------------------------------------- /static/images/goods/goods013.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods013.jpg -------------------------------------------------------------------------------- /static/images/goods/goods014.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods014.jpg -------------------------------------------------------------------------------- /static/images/goods/goods015.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods015.jpg -------------------------------------------------------------------------------- /static/images/goods/goods016.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods016.jpg -------------------------------------------------------------------------------- /static/images/goods/goods017.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods017.jpg -------------------------------------------------------------------------------- /static/images/goods/goods018.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods018.jpg -------------------------------------------------------------------------------- /static/images/goods/goods019.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods019.jpg -------------------------------------------------------------------------------- /static/images/goods/goods020.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods020.jpg -------------------------------------------------------------------------------- /static/images/goods/goods021.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/goods/goods021.jpg -------------------------------------------------------------------------------- /static/images/register_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/static/images/register_banner.png -------------------------------------------------------------------------------- /media/images/简爱_20190423064841_720.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaojie0202/BookShop/HEAD/media/images/简爱_20190423064841_720.jpg -------------------------------------------------------------------------------- /book_shop/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for book_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.2/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', 'book_shop.settings') 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /app/migrations/0002_goods_add_datetime.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.2 on 2019-04-23 07:12 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('app', '0001_initial'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AddField( 14 | model_name='goods', 15 | name='add_datetime', 16 | field=models.DateTimeField(auto_now=True, verbose_name='添加时间'), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /app/templatetags/tags.py: -------------------------------------------------------------------------------- 1 | from django import template 2 | from django.utils.safestring import mark_safe 3 | 4 | register = template.Library() 5 | 6 | 7 | @register.simple_tag 8 | def filter_handel(filter_data, t): 9 | ss = '' 10 | for k, v in filter_data.items(): 11 | if k != t: 12 | ss += '&%s=%s' % (k, v) 13 | return ss 14 | 15 | @register.simple_tag 16 | def chengfa(*args): 17 | b = 1 18 | 19 | for a in args: 20 | b = b * a 21 | print(args) 22 | return b 23 | -------------------------------------------------------------------------------- /app/migrations/0004_auto_20190425_0251.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.2 on 2019-04-25 02:51 2 | 3 | from django.db import migrations, models 4 | import django.utils.timezone 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('app', '0003_auto_20190423_0835'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterField( 15 | model_name='goods', 16 | name='add_datetime', 17 | field=models.DateTimeField(default=django.utils.timezone.now, verbose_name='添加时间'), 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /static/css/reset.css: -------------------------------------------------------------------------------- 1 | /* 把标签默认的间距设为0 */ 2 | body,ul,ol,p,h1,h2,h3,h4,h5,h6,dl,dd,select,input,textarea,form{margin:0;padding:0} 3 | 4 | /* 让h标签文字大小继承body的文字设置 */ 5 | h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;} 6 | 7 | /* 去掉列表默认的图标 */ 8 | ul,ol{list-style:none;} 9 | 10 | /* 去掉em默认的斜体 */ 11 | em{font-style: normal;} 12 | 13 | /* 去掉a标签默认的下划线 */ 14 | a{text-decoration:none;} 15 | 16 | 17 | /* 去掉加链接时产生的框线 */ 18 | img{border:0;} 19 | 20 | /* 清除浮动 */ 21 | .clearfix:before,.clearfix:after{content:"";display:table} 22 | .clearfix:after{clear:both;} 23 | .clearfix{zoom:1} 24 | 25 | /* 浮动 */ 26 | .fl{float:left} 27 | .fr{float:right} -------------------------------------------------------------------------------- /manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """Django's command-line utility for administrative tasks.""" 3 | import os 4 | import sys 5 | 6 | 7 | def main(): 8 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'book_shop.settings') 9 | try: 10 | from django.core.management import execute_from_command_line 11 | except ImportError as exc: 12 | raise ImportError( 13 | "Couldn't import Django. Are you sure it's installed and " 14 | "available on your PYTHONPATH environment variable? Did you " 15 | "forget to activate a virtual environment?" 16 | ) from exc 17 | execute_from_command_line(sys.argv) 18 | 19 | 20 | if __name__ == '__main__': 21 | main() 22 | -------------------------------------------------------------------------------- /app/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from app import models 3 | 4 | 5 | # Register your models here. 6 | 7 | 8 | @admin.register(models.Goods) 9 | class GoodsAdmin(admin.ModelAdmin): 10 | list_display = ['name', 'price', 'unite'] 11 | 12 | 13 | @admin.register(models.OrderInfo) 14 | class OrderInfoAdmin(admin.ModelAdmin): 15 | list_display = ['order_id', 'user', 'order_status', 'total_price'] 16 | search_fields = ['order_id'] 17 | list_editable = ['order_status'] 18 | 19 | 20 | @admin.register(models.OrderGoods) 21 | class OrderGoodsAdmin(admin.ModelAdmin): 22 | list_display = ['get_order_id', 'sku', 'count'] 23 | 24 | 25 | admin.site.site_header = '书籍屋' 26 | admin.site.site_title = '书籍屋' 27 | -------------------------------------------------------------------------------- /templates/app/user/base_user.html: -------------------------------------------------------------------------------- 1 | {% extends 'app/base_site.html' %} 2 | {% block meta %}{% endblock %} 3 | {% block title %}{% endblock title %} 4 | {% block style %}{% endblock style %} 5 | 6 | 7 | {% block user_base %} 8 | 9 |
20 | 21 | {% block contenr %}{% endblock contenr %} 22 | {% endblock user_base %} 23 | 24 | 25 | {% block script %}{% endblock script %} -------------------------------------------------------------------------------- /book_shop/urls.py: -------------------------------------------------------------------------------- 1 | """book_shop URL Configuration 2 | 3 | The `urlpatterns` list routes URLs to views. For more information please see: 4 | https://docs.djangoproject.com/en/2.2/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, re_path, include 18 | from django.views.static import serve 19 | from book_shop.settings import MEDIA_ROOT 20 | 21 | urlpatterns = [ 22 | path('admin/', admin.site.urls), 23 | path('ueditor/', include('DjangoUeditor.urls')), 24 | re_path(r'^media/(?P订单提交成功!
84 |
37 | {% for good in order.ordergoods_set.all %}
38 |
|
47 | {{ order.total_price }}元 | 48 | {% if order.order_status == 1 %} 49 |待付款 | 50 |去付款 | 51 | {% elif order.order_status == 2 %} 52 |待发货 | 53 |待发货 | 54 | {% elif order.order_status == 3 %} 55 |待收货 | 56 |确认收货 57 | | 58 | {% elif order.order_status == 4 %} 59 |已完成 | 60 |已完成 | 61 | {% endif %} 62 | 63 |
支付成功!
85 |")[0],f=t.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(c,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),h.fn=t.extend(h.prototype,{parse:function(n,a,r,l){if(n===e)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=t(n).css(a),a=e);var u=this,d=t.type(n),p=this._rgba=[];return a!==e&&(n=[n,a,r,l],d="array"),"string"===d?this.parse(s(n)||o._default):"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=i(n[e.idx],e)}),this):"object"===d?(n instanceof h?f(c,function(t,e){n[e.cache]&&(u[e.cache]=n[e.cache].slice())}):f(c,function(e,s){var o=s.cache;f(s.props,function(t,e){if(!u[o]&&s.to){if("alpha"===t||null==n[t])return;u[o]=s.to(u._rgba)}u[o][e.idx]=i(n[t],e,!0)}),u[o]&&0>t.inArray(null,u[o].slice(0,3))&&(u[o][3]=1,s.from&&(u._rgba=s.from(u[o])))}),this):e},is:function(t){var i=h(t),s=!0,n=this;return f(c,function(t,o){var a,r=i[o.cache];return r&&(a=n[o.cache]||o.to&&o.to(n._rgba)||[],f(o.props,function(t,i){return null!=r[i.idx]?s=r[i.idx]===a[i.idx]:e})),s}),s},_space:function(){var t=[],e=this;return f(c,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){var s=h(t),n=s._space(),o=c[n],a=0===this.alpha()?h("transparent"):this,r=a[o.cache]||o.to(a._rgba),l=r.slice();return s=s[o.cache],f(o.props,function(t,n){var o=n.idx,a=r[o],h=s[o],c=u[n.type]||{};null!==h&&(null===a?l[o]=h:(c.mod&&(h-a>c.mod/2?a+=c.mod:a-h>c.mod/2&&(a-=c.mod)),l[o]=i((h-a)*e+a,n)))}),this[n](l)},blend:function(e){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=h(e)._rgba;return h(t.map(i,function(t,e){return(1-s)*n[e]+s*t}))},toRgbaString:function(){var e="rgba(",i=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===i[3]&&(i.pop(),e="rgb("),e+i.join()+")"},toHslaString:function(){var e="hsla(",i=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===i[3]&&(i.pop(),e="hsl("),e+i.join()+")"},toHexString:function(e){var i=this._rgba.slice(),s=i.pop();return e&&i.push(~~(255*s)),"#"+t.map(i,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),h.fn.parse.prototype=h.fn,c.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,o=t[2]/255,a=t[3],r=Math.max(s,n,o),l=Math.min(s,n,o),h=r-l,c=r+l,u=.5*c;return e=l===r?0:s===r?60*(n-o)/h+360:n===r?60*(o-s)/h+120:60*(s-n)/h+240,i=0===h?0:.5>=u?h/c:h/(2-c),[Math.round(e)%360,i,u,null==a?1:a]},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],o=t[3],a=.5>=s?s*(1+i):s+i-s*i,r=2*s-a;return[Math.round(255*n(r,a,e+1/3)),Math.round(255*n(r,a,e)),Math.round(255*n(r,a,e-1/3)),o]},f(c,function(s,n){var o=n.props,a=n.cache,l=n.to,c=n.from;h.fn[s]=function(s){if(l&&!this[a]&&(this[a]=l(this._rgba)),s===e)return this[a].slice();var n,r=t.type(s),u="array"===r||"object"===r?s:arguments,d=this[a].slice();return f(o,function(t,e){var s=u["object"===r?t:e.idx];null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),c?(n=h(c(d)),n[a]=d,n):h(d)},f(o,function(e,i){h.fn[e]||(h.fn[e]=function(n){var o,a=t.type(n),l="alpha"===e?this._hsla?"hsla":"rgba":s,h=this[l](),c=h[i.idx];return"undefined"===a?c:("function"===a&&(n=n.call(this,c),a=t.type(n)),null==n&&i.empty?this:("string"===a&&(o=r.exec(n),o&&(n=c+parseFloat(o[2])*("+"===o[1]?1:-1))),h[i.idx]=n,this[l](h)))})})}),h.hook=function(e){var i=e.split(" ");f(i,function(e,i){t.cssHooks[i]={set:function(e,n){var o,a,r="";if("transparent"!==n&&("string"!==t.type(n)||(o=s(n)))){if(n=h(o||n),!d.rgba&&1!==n._rgba[3]){for(a="backgroundColor"===i?e.parentNode:e;(""===r||"transparent"===r)&&a&&a.style;)try{r=t.css(a,"backgroundColor"),a=a.parentNode}catch(l){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{e.style[i]=n}catch(l){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=h(e.elem,i),e.end=h(e.end),e.colorInit=!0),t.cssHooks[i].set(e.elem,e.start.transition(e.end,e.pos))}})},h.hook(a),t.cssHooks.borderColor={expand:function(t){var e={};return f(["Top","Right","Bottom","Left"],function(i,s){e["border"+s+"Color"]=t}),e}},o=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(r),function(){function e(e){var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,o={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(o[t.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(o[i]=n[i]);return o}function i(e,i){var s,o,a={};for(s in i)o=i[s],e[s]!==o&&(n[s]||(t.fx.step[s]||!isNaN(parseFloat(o)))&&(a[s]=o));return a}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,i){t.fx.step[i]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(r.style(t.elem,i,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(n,o,a,r){var l=t.speed(o,a,r);return this.queue(function(){var o,a=t(this),r=a.attr("class")||"",h=l.children?a.find("*").addBack():a;h=h.map(function(){var i=t(this);return{el:i,start:e(this)}}),o=function(){t.each(s,function(t,e){n[e]&&a[e+"Class"](n[e])})},o(),h=h.map(function(){return this.end=e(this.el[0]),this.diff=i(this.start,this.end),this}),a.attr("class",r),h=h.map(function(){var e=this,i=t.Deferred(),s=t.extend({},l,{queue:!1,complete:function(){i.resolve(e)}});return this.el.animate(this.diff,s),i.promise()}),t.when.apply(t,h.get()).done(function(){o(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),l.complete.call(a[0])})})},t.fn.extend({addClass:function(e){return function(i,s,n,o){return s?t.effects.animateClass.call(this,{add:i},s,n,o):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(i,s,n,o){return arguments.length>1?t.effects.animateClass.call(this,{remove:i},s,n,o):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(e){return function(i,s,n,o,a){return"boolean"==typeof s||void 0===s?n?t.effects.animateClass.call(this,s?{add:i}:{remove:i},n,o,a):e.apply(this,arguments):t.effects.animateClass.call(this,{toggle:i},s,n,o)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,o){return t.effects.animateClass.call(this,{add:i,remove:e},s,n,o)}})}(),function(){function e(e,i,s,n){return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},null==i&&(i={}),t.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s=null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off?0:"number"==typeof s?s:s in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function i(e){return!e||"number"==typeof e||t.fx.speeds[e]?!0:"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!0:"object"!=typeof e||e.effect?!1:!0:!0}function s(t,e){var i=e.outerWidth(),s=e.outerHeight(),n=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,o=n.exec(t)||["",0,i,s,0];return{top:parseFloat(o[1])||0,right:"auto"===o[2]?i:parseFloat(o[2]),bottom:"auto"===o[3]?s:parseFloat(o[3]),left:parseFloat(o[4])||0}}t.expr&&t.expr.filters&&t.expr.filters.animated&&(t.expr.filters.animated=function(e){return function(i){return!!t(i).data(a)||e(i)}}(t.expr.filters.animated)),t.uiBackCompat!==!1&&t.extend(t.effects,{save:function(t,e){for(var i=0,s=e.length;s>i;i++)null!==e[i]&&t.data(n+e[i],t[0].style[e[i]]) 8 | },restore:function(t,e){for(var i,s=0,o=e.length;o>s;s++)null!==e[s]&&(i=t.data(n+e[s]),t.css(e[s],i))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var i={width:e.outerWidth(!0),height:e.outerHeight(!0),"float":e.css("float")},s=t("
").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:e.width(),height:e.height()},o=document.activeElement;try{o.id}catch(a){o=document.body}return e.wrap(s),(e[0]===o||t.contains(e[0],o))&&t(o).trigger("focus"),s=e.parent(),"static"===e.css("position")?(s.css({position:"relative"}),e.css({position:"relative"})):(t.extend(i,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){var i=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===i||t.contains(e[0],i))&&t(i).trigger("focus")),e}}),t.extend(t.effects,{version:"1.12.1",define:function(e,i,s){return s||(s=i,i="effect"),t.effects.effect[e]=s,t.effects.effect[e].mode=i,s},scaledDimensions:function(t,e,i){if(0===e)return{height:0,width:0,outerHeight:0,outerWidth:0};var s="horizontal"!==i?(e||100)/100:1,n="vertical"!==i?(e||100)/100:1;return{height:t.height()*n,width:t.width()*s,outerHeight:t.outerHeight()*n,outerWidth:t.outerWidth()*s}},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();e>1&&s.splice.apply(s,[1,0].concat(s.splice(e,i))),t.dequeue()},saveStyle:function(t){t.data(o,t[0].style.cssText)},restoreStyle:function(t){t[0].style.cssText=t.data(o)||"",t.removeData(o)},mode:function(t,e){var i=t.is(":hidden");return"toggle"===e&&(e=i?"show":"hide"),(i?"hide"===e:"show"===e)&&(e="none"),e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createPlaceholder:function(e){var i,s=e.css("position"),o=e.position();return e.css({marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()),/^(static|relative)/.test(s)&&(s="absolute",i=t("<"+e[0].nodeName+">").insertAfter(e).css({display:/^(inline|ruby)/.test(e.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight"),"float":e.css("float")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).addClass("ui-effects-placeholder"),e.data(n+"placeholder",i)),e.css({position:s,left:o.left,top:o.top}),i},removePlaceholder:function(t){var e=n+"placeholder",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(e){t.effects.restoreStyle(e),t.effects.removePlaceholder(e)},setTransition:function(e,i,s,n){return n=n||{},t.each(i,function(t,i){var o=e.cssUnit(i);o[0]>0&&(n[i]=o[0]*s+o[1])}),n}}),t.fn.extend({effect:function(){function i(e){function i(){l.removeData(a),t.effects.cleanUp(l),"hide"===s.mode&&l.hide(),r()}function r(){t.isFunction(h)&&h.call(l[0]),t.isFunction(e)&&e()}var l=t(this);s.mode=u.shift(),t.uiBackCompat===!1||o?"none"===s.mode?(l[c](),r()):n.call(l[0],s,i):(l.is(":hidden")?"hide"===c:"show"===c)?(l[c](),r()):n.call(l[0],s,r)}var s=e.apply(this,arguments),n=t.effects.effect[s.effect],o=n.mode,r=s.queue,l=r||"fx",h=s.complete,c=s.mode,u=[],d=function(e){var i=t(this),s=t.effects.mode(i,c)||o;i.data(a,!0),u.push(s),o&&("show"===s||s===o&&"hide"===s)&&i.show(),o&&"none"===s||t.effects.saveStyle(i),t.isFunction(e)&&e()};return t.fx.off||!n?c?this[c](s.duration,h):this.each(function(){h&&h.call(this)}):r===!1?this.each(d).each(i):this.queue(l,d).queue(l,i)},show:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="show",this.effect.call(this,n)}}(t.fn.show),hide:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(t.fn.hide),toggle:function(t){return function(s){if(i(s)||"boolean"==typeof s)return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(t.fn.toggle),cssUnit:function(e){var i=this.css(e),s=[];return t.each(["em","px","%","pt"],function(t,e){i.indexOf(e)>0&&(s=[parseFloat(i),e])}),s},cssClip:function(t){return t?this.css("clip","rect("+t.top+"px "+t.right+"px "+t.bottom+"px "+t.left+"px)"):s(this.css("clip"),this)},transfer:function(e,i){var s=t(this),n=t(e.to),o="fixed"===n.css("position"),a=t("body"),r=o?a.scrollTop():0,l=o?a.scrollLeft():0,h=n.offset(),c={top:h.top-r,left:h.left-l,height:n.innerHeight(),width:n.innerWidth()},u=s.offset(),d=t("").appendTo("body").addClass(e.className).css({top:u.top-r,left:u.left-l,height:s.innerHeight(),width:s.innerWidth(),position:o?"fixed":"absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),t.isFunction(i)&&i()})}}),t.fx.step.clip=function(e){e.clipInit||(e.start=t(e.elem).cssClip(),"string"==typeof e.end&&(e.end=s(e.end,e.elem)),e.clipInit=!0),t(e.elem).cssClip({top:e.pos*(e.end.top-e.start.top)+e.start.top,right:e.pos*(e.end.right-e.start.right)+e.start.right,bottom:e.pos*(e.end.bottom-e.start.bottom)+e.start.bottom,left:e.pos*(e.end.left-e.start.left)+e.start.left})}}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,i){e[i]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,i){t.easing["easeIn"+e]=i,t.easing["easeOut"+e]=function(t){return 1-i(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?i(2*t)/2:1-i(-2*t+2)/2}})}(),t.effects}); --------------------------------------------------------------------------------