基本信息
25 |-
26 |
- 用户名:{{ user_name }} 27 |
- 邮箱:{{ user_email }} 28 |
最近浏览
33 |-
35 | {% for each in view_list %}
36 |
-
37 |
38 |
{{ each.product_name }}
39 | 44 |
45 | {% endfor %}
46 |
├── carts ├── __init__.py ├── admin.py ├── models.py ├── urls.py └── views.py ├── order ├── __init__.py ├── admin.py ├── urls.py ├── models.py └── views.py ├── products ├── __init__.py ├── urls.py ├── search_indexes.py ├── admin.py ├── models.py └── views.py ├── user_part ├── __init__.py ├── admin.py ├── decorator.py ├── urls.py ├── models.py └── views.py ├── whoosh_index ├── MAIN_WRITELOCK ├── _MAIN_1.toc └── MAIN_olj32r4wvmtar67a.seg ├── ttshengxian ├── __init__.py ├── wsgi.py ├── urls.py └── settings.py ├── static ├── images │ ├── adv01.jpg │ ├── adv02.jpg │ ├── down.png │ ├── fruit.jpg │ ├── goods.jpg │ ├── icons.png │ ├── logo.png │ ├── logo02.png │ ├── slide.jpg │ ├── banner01.jpg │ ├── banner02.jpg │ ├── banner03.jpg │ ├── banner04.jpg │ ├── banner05.jpg │ ├── banner06.jpg │ ├── goods02.jpg │ ├── icons02.png │ ├── left_bg.jpg │ ├── slide02.jpg │ ├── slide03.jpg │ ├── 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 ├── product_img │ ├── goods001.jpg │ ├── goods002.jpg │ ├── goods003.jpg │ └── goods010.jpg ├── css │ ├── reset.css │ └── main.css └── js │ ├── slide.js │ ├── register.js │ ├── jquery.cookie.js │ └── jquery-ui.min.js ├── templates ├── search │ ├── indexes │ │ └── products │ │ │ └── productinfo_text.txt │ └── search.html ├── base.html ├── foot.html ├── user │ ├── register.html │ ├── forget.html │ ├── user_center_info.html │ ├── user_center_site.html │ ├── login.html │ ├── reset.html │ └── user_center_order.html ├── product │ ├── base.html │ ├── list.html │ ├── detail.html │ └── index.html ├── place_order.html └── cart.html ├── requirements.txt ├── manage.py └── README.md /carts/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /order/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /products/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /user_part/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /whoosh_index/MAIN_WRITELOCK: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ttshengxian/__init__.py: -------------------------------------------------------------------------------- 1 | import pymysql 2 | pymysql.install_as_MySQLdb() -------------------------------------------------------------------------------- /carts/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /order/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /user_part/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /static/images/adv01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/adv01.jpg -------------------------------------------------------------------------------- /static/images/adv02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/adv02.jpg -------------------------------------------------------------------------------- /static/images/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/down.png -------------------------------------------------------------------------------- /static/images/fruit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/fruit.jpg -------------------------------------------------------------------------------- /static/images/goods.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods.jpg -------------------------------------------------------------------------------- /static/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/icons.png -------------------------------------------------------------------------------- /static/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/logo.png -------------------------------------------------------------------------------- /static/images/logo02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/logo02.png -------------------------------------------------------------------------------- /static/images/slide.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/slide.jpg -------------------------------------------------------------------------------- /whoosh_index/_MAIN_1.toc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/whoosh_index/_MAIN_1.toc -------------------------------------------------------------------------------- /static/images/banner01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/banner01.jpg -------------------------------------------------------------------------------- /static/images/banner02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/banner02.jpg -------------------------------------------------------------------------------- /static/images/banner03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/banner03.jpg -------------------------------------------------------------------------------- /static/images/banner04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/banner04.jpg -------------------------------------------------------------------------------- /static/images/banner05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/banner05.jpg -------------------------------------------------------------------------------- /static/images/banner06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/banner06.jpg -------------------------------------------------------------------------------- /static/images/goods02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods02.jpg -------------------------------------------------------------------------------- /static/images/icons02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/icons02.png -------------------------------------------------------------------------------- /static/images/left_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/left_bg.jpg -------------------------------------------------------------------------------- /static/images/slide02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/slide02.jpg -------------------------------------------------------------------------------- /static/images/slide03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/slide03.jpg -------------------------------------------------------------------------------- /static/images/slide04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/slide04.jpg -------------------------------------------------------------------------------- /static/images/pay_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/pay_icons.png -------------------------------------------------------------------------------- /static/images/shop_cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/shop_cart.png -------------------------------------------------------------------------------- /static/images/goods_detail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods_detail.jpg -------------------------------------------------------------------------------- /static/images/interval_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/interval_line.png -------------------------------------------------------------------------------- /static/images/login_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/login_banner.png -------------------------------------------------------------------------------- /static/product_img/goods001.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/product_img/goods001.jpg -------------------------------------------------------------------------------- /static/product_img/goods002.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/product_img/goods002.jpg -------------------------------------------------------------------------------- /static/product_img/goods003.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/product_img/goods003.jpg -------------------------------------------------------------------------------- /static/product_img/goods010.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/product_img/goods010.jpg -------------------------------------------------------------------------------- /static/images/goods/goods001.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods001.jpg -------------------------------------------------------------------------------- /static/images/goods/goods002.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods002.jpg -------------------------------------------------------------------------------- /static/images/goods/goods003.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods003.jpg -------------------------------------------------------------------------------- /static/images/goods/goods004.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods004.jpg -------------------------------------------------------------------------------- /static/images/goods/goods005.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods005.jpg -------------------------------------------------------------------------------- /static/images/goods/goods006.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods006.jpg -------------------------------------------------------------------------------- /static/images/goods/goods007.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods007.jpg -------------------------------------------------------------------------------- /static/images/goods/goods008.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods008.jpg -------------------------------------------------------------------------------- /static/images/goods/goods009.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods009.jpg -------------------------------------------------------------------------------- /static/images/goods/goods010.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods010.jpg -------------------------------------------------------------------------------- /static/images/goods/goods011.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods011.jpg -------------------------------------------------------------------------------- /static/images/goods/goods012.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods012.jpg -------------------------------------------------------------------------------- /static/images/goods/goods013.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods013.jpg -------------------------------------------------------------------------------- /static/images/goods/goods014.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods014.jpg -------------------------------------------------------------------------------- /static/images/goods/goods015.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods015.jpg -------------------------------------------------------------------------------- /static/images/goods/goods016.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods016.jpg -------------------------------------------------------------------------------- /static/images/goods/goods017.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods017.jpg -------------------------------------------------------------------------------- /static/images/goods/goods018.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods018.jpg -------------------------------------------------------------------------------- /static/images/goods/goods019.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods019.jpg -------------------------------------------------------------------------------- /static/images/goods/goods020.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods020.jpg -------------------------------------------------------------------------------- /static/images/goods/goods021.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/goods/goods021.jpg -------------------------------------------------------------------------------- /static/images/register_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/static/images/register_banner.png -------------------------------------------------------------------------------- /whoosh_index/MAIN_olj32r4wvmtar67a.seg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ennl2py/Django-Mall/HEAD/whoosh_index/MAIN_olj32r4wvmtar67a.seg -------------------------------------------------------------------------------- /templates/search/indexes/products/productinfo_text.txt: -------------------------------------------------------------------------------- 1 | {{ object.product_name }} 2 | {{ object.product_abstract }} 3 | {{ object.product_content }} -------------------------------------------------------------------------------- /order/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import url 2 | from . import views 3 | 4 | urlpatterns = [ 5 | url(r'^$', views.order), 6 | url(r'^order_handler/$', views.order_handler), 7 | url(r'^pay/(\d+)$', views.pay) 8 | ] -------------------------------------------------------------------------------- /products/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import url 2 | from . import views 3 | 4 | urlpatterns = [ 5 | url(r'^$', views.index), 6 | url(r'^list(\d+)_(\d+)_(\d+)/$', views.plist), 7 | url(r'^(\d+)/$', views.detail) 8 | ] 9 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Django==2.0.4 2 | django-haystack==2.8.1 3 | django-tinymce==2.7.0 4 | itsdangerous==0.24 5 | jieba==0.39 6 | Pillow==5.0.0 7 | pkg-resources==0.0.0 8 | PyMySQL==0.8.0 9 | pytz==2018.4 10 | Whoosh==2.7.4 11 | -------------------------------------------------------------------------------- /carts/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | 4 | class CartInfo(models.Model): 5 | user = models.ForeignKey('user_part.Userinfo', on_delete=models.CASCADE) 6 | product = models.ForeignKey('products.ProductInfo', on_delete=models.CASCADE) 7 | count = models.IntegerField() 8 | -------------------------------------------------------------------------------- /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", "ttshengxian.settings") 7 | 8 | from django.core.management import execute_from_command_line 9 | 10 | execute_from_command_line(sys.argv) 11 | -------------------------------------------------------------------------------- /carts/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import url 2 | from . import views 3 | 4 | urlpatterns = [ 5 | url('^$', views.cart), 6 | url('^add(\d+)_(\d+)/$', views.add), 7 | url('^count_judge/$', views.count_judge), 8 | url('^edit(\d+)_(\d+)/$', views.edit), 9 | url('^delete(\d+)/$', views.delete), 10 | ] 11 | -------------------------------------------------------------------------------- /products/search_indexes.py: -------------------------------------------------------------------------------- 1 | from haystack import indexes 2 | from .models import ProductInfo 3 | 4 | 5 | class ProductIndex(indexes.SearchIndex, indexes.Indexable): 6 | text = indexes.CharField(document=True, use_template=True) 7 | 8 | def get_model(self): 9 | return ProductInfo 10 | 11 | def index_queryset(self, using=None): 12 | return self.get_model().objects.all() -------------------------------------------------------------------------------- /user_part/decorator.py: -------------------------------------------------------------------------------- 1 | from django.http import HttpResponseRedirect 2 | 3 | 4 | def login(func): 5 | def wrapper(request, *args, **kw): 6 | if request.session.has_key('user_id'): 7 | return func(request, *args, **kw) 8 | else: 9 | res = HttpResponseRedirect('/user/login/') 10 | res.set_cookie('url', request.get_full_path()) 11 | return res 12 | 13 | return wrapper 14 | -------------------------------------------------------------------------------- /ttshengxian/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for ttshengxian 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/1.8/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", "ttshengxian.settings") 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /products/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from products.models import ProductType, ProductInfo 3 | 4 | 5 | class ProductTypeAdmin(admin.ModelAdmin): 6 | list_display = ['id', 'type_name'] 7 | 8 | 9 | class ProductInfoAdmin(admin.ModelAdmin): 10 | list_per_page = 10 11 | list_display = ['id', 'product_name', 'product_price', 'product_click', 'product_unit', 12 | 'product_stock', 'product_type'] 13 | 14 | 15 | admin.site.register(ProductType, ProductTypeAdmin) 16 | admin.site.register(ProductInfo, ProductInfoAdmin) 17 | -------------------------------------------------------------------------------- /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} -------------------------------------------------------------------------------- /user_part/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import url 2 | from . import views 3 | 4 | urlpatterns = [ 5 | url(r'^register/$', views.register), 6 | url(r'^register_handler/$', views.register_handler), 7 | url(r'^register_judge/$', views.register_judge), 8 | url(r'^login/$', views.login), 9 | url(r'^login_judge/$', views.login_judge), 10 | url(r'^login_handler/$', views.login_handler), 11 | url(r'^forget/$', views.forget), 12 | url(r'^reset/$', views.reset), 13 | url(r'^logout/$', views.logout), 14 | url(r'^info/$', views.info), 15 | url(r'^order/$', views.order), 16 | url(r'^order/(\d+)$', views.order_page), 17 | url(r'^site/$', views.site), 18 | ] 19 | -------------------------------------------------------------------------------- /templates/base.html: -------------------------------------------------------------------------------- 1 | {% extends 'foot.html' %} 2 | 3 | {% block main %} 4 |
39 | {% for each1 in each.orderdetailinfo_set.all %}
40 |
|
48 | {{ each.total_price }} | 49 | {% if each.is_Pay %} 50 |已付款 | 51 |查看物流 | 52 | {% else %} 53 |待付款 | 54 |去付款 | 55 | {% endif %} 56 |
")[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}); --------------------------------------------------------------------------------