zhengjinyi 4 роки тому
батько
коміт
d71dcc4d06

+ 2 - 0
src/main/resources/static/css/base/init.css

@@ -18,6 +18,8 @@ header li,footer li{list-style:none;}
 table{border-collapse: collapse;}
 table,td,th{border: 1px solid #EBECEF;}
 .favicon.ico{background: url(/img/web.ico)}
+.fl{float: left;}
+.fr{float: right;}
 /* checkbox */
 input[type=checkbox]{width:16px;height:16px;text-align:center;outline:none;cursor:copy;}
 input[type=checkbox]:focus{outline:none}

+ 94 - 11
src/main/resources/static/css/shopping/confirm.css

@@ -27,10 +27,10 @@ li{list-style:none}
     .pageTitle .step label.line.on{background: #E15616;}
 
     .container{width:1184px;min-height: 600px;margin: 0 auto;}
-    .container .content{width:100%;height: auto;float: left;margin-bottom: 20px;}
+    .container .content{width:100%;height: auto;float: left;margin-bottom: 20px;position: relative;}
     .container .content .title{width:100%;height: 36px;float: left;font-size: 16px;box-sizing: border-box;padding: 0 16px;line-height: 36px;color: #22272e;}
     .container .content .section{width:100%;height: auto;float: left;box-sizing: border-box;padding:16px;box-shadow: 0px 3px 6px 0px rgba(34, 39, 46, 0.07);background-color: #ffffff;}
-    .container .content .section.address-none{height: 318px;}
+    .container .content .section.address-none{height: 318px;position: absolute;left: 0;top: 36px;}
     .container .content .section.address-none .address-main{width: 626px; float: left;height: 100%;}
     .container .content .section.address-none .formLine{padding-bottom:16px;font-size:14px;position:relative;width: 100%;height: auto;float: left;}
     .container .content .section.address-none .formLine input{box-sizing:border-box;width:100%;height:36px;line-height:34px;text-indent:1.2em;background-color:#FFF;border:1px solid #b8bfca;border-radius:2px}
@@ -55,17 +55,20 @@ li{list-style:none}
 
     .container .content .section.address{height: 123px;}
     .container .content .section.address .address-info{width: 810px;float: left;height: 100%;}
+    .container .content .section.address .address-info .info-p{line-height: 91px;text-align: center;color: #b8bfca;}
     .container .content .section.address .address-info .info-left{width: 580px;float: left;height: 100%;}
     .container .content .section.address .address-info .info-left p{width: 100%;height: 30px;line-height: 30px;font-size: 14px;color: #22272e;}
     .container .content .section.address .address-info .info-left p .label{color: #627386;margin-right: 5px;display: inline-block;min-width: 60px;height:30px;text-align: justify;vertical-align: top;}
     .container .content .section.address .address-info .info-left p .label:after{content: '';display: inline-block;width: 100%;}
     .container .content .section.address .address-info .info-right{width: 150px;height: 100%;float: right;}
     .container .content .section.address .address-info .info-right .info-top{height: 24px;width: 100%;line-height: 24px;font-size: 14px;}
+    .container .content .section.address .address-info .info-right .info-top .defau{height: 100%;float: left;}
     .container .content .section.address .address-info .info-right .icon{height: 24px;width: 24px;display: block;float: left;margin-right: 5px;}
     .container .content .section.address .address-info .info-right .icon:before{height: 24px;width: 24px;background-position: -255px -330px;}
-    .container .content .section.address .address-info .info-right .span-s{display: inline-block;height: 24px;width: 73px;background-color: #f94b4b;font-size: 14px;color: #FFFFFF;border-radius: 12px;text-align: center;}
-    .container .content .section.address .address-info .info-right a{display: inline-block;height: 24px;font-size: 14px;color: #1890f9;margin-left: 5px;}
+    .container .content .section.address .address-info .info-right .span-s{display: inline-block;height: 24px;width: 73px;background-color: #f94b4b;font-size: 12px;color: #FFFFFF;border-radius: 12px;text-align: center;}
+    .container .content .section.address .address-info .info-right a{display: inline-block;height: 24px;font-size: 14px;color: #1890f9;margin-left: 8px;float: left}
     .container .content .section.address .address-sub{width: 320px; float: right;height: 100%;position: relative;box-sizing: border-box;padding:0 96px;}
+    .container .content .section.address .address-sub.add{padding:27px 96px;}
     .container .content .section.address .address-sub:before{content:'';width: 1px;height: 90px;border-left: 1px dashed #b8bfca;position: absolute;left: 0;top: 0;}
     .container .content .section.address .address-sub .btn{width: 128px;height: 34px;float: left;line-height: 34px;text-align: center;font-size: 14px;display: block;border: 1px solid #FFFFFF;margin: 3px 0}
     .container .content .section.address .address-sub .btn-none{color: #1890f9;}
@@ -78,17 +81,20 @@ li{list-style:none}
     .model-address-content .title .icon{width: 16px;height: 16px;display: block;position: absolute;right:0;top: 0;cursor: pointer;padding: 10px;}
     .model-address-content .title .icon:before{width: 16px;height: 16px;background-position: -318px 0;}
     .model-address-content .content{width:100%;height: 499px;box-sizing: border-box;padding: 16px;float: left;overflow: hidden;overflow-y: auto;}
-    .model-address-content .content .list{position: relative;width:100%;height: 145px;box-sizing: border-box;padding: 16px;float: left;margin-bottom: 16px;border: 1px solid #b8bfca;border-radius: 2px;}
+    .model-address-content .content .list{cursor:pointer;position: relative;width:100%;height: 145px;box-sizing: border-box;padding: 16px;float: left;margin-bottom: 16px;border: 1px solid #b8bfca;border-radius: 2px;}
+    .model-address-content .content .list .list-left{width: 100%;height:auto;float: left}
+    .model-address-content .content .list .list-right{width:auto;height:24px;position: absolute;top: 16px;right: 12px;}
     .model-address-content .content .list p{width: 100%;height: 36px;line-height: 36px;font-size: 14px;color: #22272e;}
     .model-address-content .content .list p .label{color: #627386;margin-right: 5px;display: inline-block;min-width: 60px;height:36px;text-align: justify;vertical-align: top;}
     .model-address-content .content .list p .label:after{content: '';display: inline-block;width: 100%;}
-    .model-address-content .content .list .list-defalut{position: absolute;top: 12px;right: 12px;}
+    .model-address-content .content .list .list-defalut{float: left;}
+    .model-address-content .content .list .list-btn{background-color: #ffe6dc;border-radius: 12px;border: 1px solid #E15616;color:#E15616;float: left;display: inline-block;width:48px;height: 22px;font-size: 12px;margin-left: 8px;text-align: center;line-height: 22px;}
     .model-address-content .content .list .list-defalut .icon{height: 24px;width: 24px;display: block;float: left;margin-right: 5px;}
     .model-address-content .content .list .list-defalut .icon:before{height: 24px;width: 24px;background-position: -255px -330px;}
-    .model-address-content .content .list .list-defalut .span-s{display: inline-block;height: 24px;line-height:24px;width: 73px;background-color: #f94b4b;font-size: 14px;color: #FFFFFF;border-radius: 12px;text-align: center;}
-    .model-address-content .content .list .seclet{width: 20px;height: 20px;position: absolute;bottom: 0;right: 0;opacity: 0;}
-    .model-address-content .content .list .seclet .icon{width: 20px;height: 20px;display: block;}
-    .model-address-content .content .list .seclet .icon:before{width: 20px;height: 20px;background-position: -208px -253px;}
+    .model-address-content .content .list .list-defalut .span-s{display: inline-block;height: 24px;line-height:24px;padding: 0 15px;background-color: #f94b4b;font-size: 12px;color: #FFFFFF;border-radius: 12px;text-align: center;cursor: pointer;}
+    .model-address-content .content .list .seclet{width: 40px;height: 40px;position: absolute;bottom: 0;right: 0;opacity: 0;}
+    .model-address-content .content .list .seclet .icon{width:40px;height: 40px;display: block;}
+    .model-address-content .content .list .seclet .icon:before{width: 40px;height: 40px;background-position: -308px -453px;}
     .model-address-content .content .list.checked{border-color: #E15616;}
     .model-address-content .content .list.checked .seclet{opacity: 1;}
     .model-address-content .button{width: 100%;height: 36px;float: left;box-sizing: border-box;padding: 0 187px;}
@@ -96,7 +102,84 @@ li{list-style:none}
     .model-address-content .button .btn-confirm{background-color: #E15616;color: #ffffff;margin-right: 15px;}
     .model-address-content .button .btn-cancel{background-color: #FFE6DC;color: #E15616;}
     /* 进货单 */
-    .container .content .section.product
+    .container .section.product{}
+    .container .section.product .title{width: 100%;height: 50px;line-height: 50px;box-sizing: border-box;float: left;font-size: 14px;line-height: 40px;border-bottom: 1px solid #efefef;}
+    .container .section.product .tr {float: left;}
+    .container .section.product .tr-info {width: 440px;}
+    .container .section.product .tr-amount {width: 240px;text-align: center;}
+    .container .section.product .tr-price {width: 240px;text-align: center;}
+    .container .section.product .tr-sum {width: 200px;text-align: center;}
+    .container .section.product .good_content{width: 100%;height: auto;float: left;}
+    .container .section.product .good_main{width: 100%;height: auto;}
+    .container .section.product .good_main .main_title{width: 100%;height: 50px;font-size: 16px;text-align: left;line-height: 50px;color: #22272e;}
+    .container .section.product .good_main .main_content_ul{width: 100%;height: 100px;padding: 12px 0;border-bottom: 1px solid #F7F7F7;}
+    .container .section.product .good_main .main_content .th{height: 100px;line-height: 100px;float: left;}
+    .container .section.product .good_main .main_content .th-info{width: 440px;}
+    .container .section.product .good_main .main_content .th-info .th-name{    float: left;width: 265px;padding: 10px;line-height: 40px;margin-left: 10px;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;text-align: justify;}
+    .container .section.product .good_main .main_content .th-info .th-image{width: 100px;height: 100px;border: 1px solid #F7F7F7;float: left;}
+    .container .section.product .good_main .main_content .th-info .th-image img{width: 100px;height: 100px;display: block;}
+    .container .section.product .good_main .main_content .th-amount {width: 240px;text-align: center;}
+    .container .section.product .good_main .main_content .th-price {width: 240px;text-align: center;}
+    .container .section.product .good_main .main_content .th-sum {width: 200px;text-align: center;}
+    .container .section.product .good_main .main_content_bt{width: 100%;height: 50px;font-size: 16px;text-align: right;line-height: 50px;color: #22272e;}
+    .container .section.product .good_main .main_content_bt span{color: #f94b4b;}
+    .container .section.product .main_footer{line-height: 42px;font-size: 14px;color: #333333;}
+    .container .section.product .main_footer .main_input {width: 1094px;height: 42px;background: #FFF;border-radius: 3px;border: none;padding: 0 10px;font-size: 14px;border: solid 1px #b8bfca;}
+    /* 发票信息   */
+    .container .section.invoice{}
+    .container .section.invoice .invoice-tabs{width: 100%;height: 38px;float: left;margin-bottom: 10px;}
+    .container .section.invoice .invoice-tabs span{display: inline-block;float: left;line-height: 36px;font-size: 14px;color: #333;}
+    .container .section.invoice .invoice-tabs .tab-radio{float: left;margin-left: 10px;}
+    .container .section.invoice .tab-radio .diyBox{width:180px;height:36px;margin-right:10px;line-height:34px;box-sizing:border-box;font-size:14px;text-align:center;display:inline-block}
+    .container .section.invoice .tab-radio .diyBox i {display: block;font-style: normal;cursor: pointer;width: 100%;height: 100%;position: relative;overflow: hidden;border-radius: 2px;background: #FFF;border: 1px solid #b8bfca;color: #627386;}
+    .container .section.invoice .tab-radio .diyBox.second{width:100px;}
+    .container .section.invoice .tab-radio .diyBox input{display:none}
+    .container .section.invoice .tab-radio .diyBox i:before{position:absolute;right:0;bottom:0;display:none;width:20px;height:20px;background-position:-208px -253px}
+    .container .section.invoice .tab-radio .diyBox input:checked + i{border-color:#e15616;color:#e15616}
+    .container .section.invoice .tab-radio .diyBox input:checked + i:before{display:block}
+    .container .section.invoice .invoice-content{width: 100%;height:auto;float: left;}
+    .container .section.invoice .main_content{width: 100%;height:auto;float: left;margin: 10px 0;}
+    .container .section.invoice .main_content span{display: inline-block;float: left;line-height: 36px;font-size: 14px;color: #333;}
+    .container .section.invoice .main_content .main_item{display: inline-block;float: left;line-height: 36px;font-size: 14px;color: #333;margin-left: 10px;}
+    .container .section.invoice .main_content .tab-radio{float: left;margin-left: 10px;}
+    .container .section.invoice .main_content .main_item_conten{width: 100%;height:auto;padding-left: 70px;box-sizing: border-box;}
+    .container .section.invoice .main_content .group-from{width: 100%;height: 38px;margin:10px 0;}
+    .container .section.invoice .main_content .label-input{width:540px;height: 36px;background: #FFF;border-radius: 3px;font-size: 14px;border: solid 1px #b8bfca;padding: 0 10px;line-height: 36px;}
+    .container .section.invoice .invoice-main{width: 100%;height:auto;float: left;}
+    .container .section.invoice .invoice-from{width: 100%;height:38px;float: left;margin: 10px 0;}
+    .container .section.invoice .invoice-from .label{width: 104px;height:38px;line-height:38px;float: left;display: inline-block;font-size: 14px;color: #627386;text-align: right;margin-right: 5px;}
+    .container .section.invoice .invoice-from .label-input{width:500px;height: 36px;background: #FFF;border-radius: 3px;font-size: 14px;border: solid 1px #b8bfca;padding: 0 10px;line-height: 36px;}
+    /*余额抵扣*/
+    .container .section.userMoney{padding:17px 16px;}
+    .container .section.userMoney .icon{width: 16px;height: 16px;display: block;float: left;margin-right: 5px;cursor: pointer;}
+    .container .section.userMoney .icon-weigouxuan:before{width: 16px;height: 16px;background-position: -236px 0;}
+    .container .section.userMoney .icon-gouxuan:before{width: 16px;height: 16px;background-position: -210px 0;}
+    .container .section.userMoney .text{float: left;height: 16px;line-height: 16px;font-size: 14px;color: #333;margin-right: 15px;}
+    .container .section.userMoney .text .red{color: #FF2A2A;}
+    .container .section.footer .footer_content{width: 340px;height: 100%;float: right;}
+    .footer_content .footer_left{height: 100%;}
+    .footer_content .footer_left p{height: 36px;line-height: 36px;font-size: 14px;color: #333;text-align: right;}
+    .footer_content .footer_right p{height: 36px;line-height: 36px;font-size: 14px;color: #333;text-align: right;}
+    .footer_content .footer_right p.red{color: #FF2A2A;}
+    .footer_content .footer_right .select{height: 36px;}
+    .footer_content .footer_right .select select{cursor: pointer;width: 80px;height: 30px;border: 1px solid #CECECE;line-height: 30px;color: #2A81FF;font-size: 14px;margin-top: 3px;float: right;}
+    /* 底部按钮 */
+    .footer_button{width: 100%;background: #FFFFFF;margin-bottom: 20px;float: left;box-sizing: border-box;padding:10px 16px;}
+    .footer_button .footer_inner{width: 1152px;margin: 0 auto;padding: 0;}
+    .footer_button .button_back .back{display: block;line-height: 54px;font-size: 16px;color: #E15616;position: relative;padding-left: 30px;}
+    .footer_button .button_back .back .icon{width: 20px;height: 20px;display: block;position: absolute;left: 0;top: 5px;}
+    .footer_button .button_back .back .icon:before{width: 20px;height: 20px;background-position:-345px 0;}
+    .footer_button .button_confim{width: 410px;}
+    .footer_button .button_confim p{float: left;line-height: 50px;font-size: 14px;color: #333;}
+    .footer_button .button_confim p.red{color: #FF2A2A;}
+    .footer_button .confimBtn{width: 232px;height: 50px;border-radius: 2px;display: block;line-height: 50px;text-align: center;font-size: 14px;float: right;background: #e15616;color: #FFF;cursor: pointer;display: block;}
+    .footer_button .confimBtn.active{background: #EFEFEF;color:#999999;}
+
+
+
+
+
+
 
 
 }

+ 3 - 1
src/main/resources/static/css/user-center/dashboard.css

@@ -40,7 +40,8 @@ li{list-style:none}
     .user-header .header-mr .message a{width: 28px;height: 28px;float: right;display: block;position: relative;}
     .user-header .header-mr .message .icon{width: 28px;height: 28px;float: right;display: block;position: relative;}
     .user-header .header-mr .message .icon:before{width: 28px;height: 28px;background-position: -240px -370px}
-    .user-header .header-mr .message .icon span{display: block;width: 20px;height: 20px;background-image: linear-gradient(90deg,#ff5353 0%,#ff2424 100%);position: absolute;top: -9px;left: -9px;font-style: normal;font-size: 13px;color: #f94b4b;line-height: 20px;text-align: center;border-radius: 50%;color: #fff;}
+    .user-header .header-mr .message .icon span{display: block;width: 20px;height: 20px;background-image: linear-gradient(90deg,#ff5353 0%,#ff2424 100%);position: absolute;top: -9px;left: -9px;font-style: normal;font-size: 12px;color: #f94b4b;line-height: 20px;text-align: center;border-radius: 50%;color: #fff;}
+    .user-header .header-mr .message .icon span.ellipse{width: 30px;height: 20px;border-radius: 10px;line-height: 20px;left: -22px;}
     .user-header .header-mr .money {width: 100%;height: 52px;line-height: 52px;font-size: 16px;}
     .user-header .header-mr .money span{color: #e15616;}
     .user-content{width: 100%;height: auto;margin-top: 10px;}
@@ -56,6 +57,7 @@ li{list-style:none}
     .user-content .section .user-main .tabs-left .item a{width: 100%;height: 100%;display: block;}
     .user-content .section .user-main .tabs-left .item a .icon{width: 24px;height: 24px;display: block;margin: 0 auto;position: relative;margin-top: 10px;}
     .user-content .section .user-main .tabs-left .item a .icon span{display: block;width: 20px;height: 20px;background-image: linear-gradient(90deg,#ff5353 0%,#ff2424 100%);position: absolute;top: -9px;right: -13px;font-style: normal;font-size: 13px;color: #f94b4b;line-height: 20px;text-align: center;border-radius: 50%;color: #fff;}
+    .user-content .section .user-main .tabs-left .item a .icon span.ellipse{width: 30px;height: 20px;border-radius: 10px;line-height: 20px;right: -22px;}
     .user-content .section .user-main .tabs-left .item a .icon.icon-1:before{width: 24px;height: 24px;background-position: 0px -516px;}
     .user-content .section .user-main .tabs-left .item a .icon.icon-2:before{width: 24px;height: 24px;background-position: -35px -516px;}
     .user-content .section .user-main .tabs-left .item a .icon.icon-3:before{width: 24px;height: 24px;background-position: -69px -516px;}

+ 115 - 0
src/main/resources/static/css/user-center/order/orderlist.css

@@ -0,0 +1,115 @@
+@charset "utf-8";
+li{list-style:none}
+/**
+ * PC端
+ */
+@media screen and (min-width:768px){
+    .navLayout {min-height: 900px;}
+    .crumbs{padding-left: 220px;}
+    .navLayout .left{float:left;width:200px;line-height:50px;white-space:nowrap;text-indent:16px;font-size:16px;background:#FFF}
+    .navLayout .left .title{color:#22272e;font-weight:bold;border-bottom:1px solid #f5f5f5}
+    .navLayout .navList .tab{display:block;color:#22272e;position:relative;cursor: pointer;}
+    .navLayout .navList .tab:before{content:'\276F';font-weight:normal;position:absolute;right:10px;top:0;transform:rotate(90deg);width:32px;height:32px;line-height:32px;text-align:center;color:#bec2c9}
+    .navLayout .navList .con{position:relative;}
+    .navLayout .navList .con:before,.navLayout .navList .con:after{content:'';position:absolute;width:168px;border-top:1px solid #f5f5f5;left:16px}
+    .navLayout .navList .con:before{top:0}
+    .navLayout .navList .con:after{bottom:0}
+    .navLayout .navList .con a{display:block;font-size:14px;color:#627386;text-indent:32px}
+    .navLayout .navList.on .tab:before{top:18px;transform:rotate(270deg);color:#e15616}
+    .navLayout .navList.on .tab{color:#e15616}
+    .navLayout .navList .con a.on{color:#e15616;background-color:#ffe6dc}
+    /*个人中心右侧*/
+    .navLayout .right{float:right;width:968px}
+    .order-header{width: 100%;height: 138px;box-sizing: border-box;padding: 20px;background-color: #FFF;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);}
+    .order-header .header-tp{width: 100%;height: 38px;float: left;margin-bottom: 25px;}
+    .order-header .header-tp .header-tabs{width: 828px;height: 38px;float: left;}
+    .order-header .header-tp .header-tabs .tabs-item{width:16.66%;height: 38px;float: left;}
+    .order-header .header-tp .header-tabs .tabs-item a{width:100%;height: 100%;display: block;font-size: 16px;line-height: 38px;text-align: left;color: #9aa5b5;}
+    .order-header .header-tp .header-tabs .tabs-item.active a{color: #E15616;}
+    .order-header .header-tp .header-ser{height: 38px;float: right;}
+    .order-header .header-tp .header-ser .btn-server{width: 90px;height: 36px;display: block;background-color: #ffe6dc;border-radius: 2px;border: solid 1px #e15616;font-size: 14px;color: #E15616;line-height: 36px;text-align: center;}
+    .order-header .header-bt {width: 100%;height: 38px;float: left;}
+    .order-header .header-bt .header-search{width: 828px;height: 38px;float: left;}
+    .order-header .header-bt .search{width: 446px;height: 38px;float: left;}
+    .order-header .header-bt .search .label{display: inline-block;float: left;width: 60px;height: 38px;line-height:38px;font-size: 12px;color: #627386;}
+    .order-header .header-bt .search .search-input{width: 386px;box-sizing: border-box;padding: 0 10px;font-size: 12px;line-height: 36px;border: 1px solid #b8bfca;border-radius: 2px; }
+    .order-header .header-bt .search-time{float: left;margin-left: 15px;}
+    .order-header .header-bt .search-time .label{display: inline-block;float: left;width: 60px;height: 38px;line-height:38px;font-size: 12px;color: #627386;}
+    .order-header .header-bt .search-time .search-main{float: left;height: 38px;}
+    .order-header .header-bt .search-time .search-main .search-input{width:114px;box-sizing: border-box;padding: 0 10px;font-size: 12px;line-height: 36px;border: 1px solid #b8bfca;border-radius: 2px; }
+    .order-header .header-bt .header-button{height: 38px;float: right;}
+    .order-header .header-bt .header-button .btn-server{width: 90px;height: 36px;display: block;background-color: #e15616;border-radius: 2px;border: solid 1px #e15616;font-size: 14px;color: #FFFFFF;line-height: 36px;text-align: center;}
+
+
+
+
+
+
+
+    .order-container{width: 100%;height: auto;margin-top: 27px;}
+    .order-container .title{width: 100%;height: 44px;line-height: 44px;font-size: 16px;text-align: left;color: #22272e;}
+    .order-container .title a{display: block;float: right;position: relative;padding-right: 36px;position: relative;}
+    .order-container .title a .icon{display: block;width: 18px;height: 18px;position: absolute;top: 5px;right: 10px;}
+    .order-container .title a .icon:before{width: 18px;height: 18px;background-position: -304px -32px;}
+    .order-container .section{width: 100%;height: auto;}
+    .order-container .section .user-main{width: 100%;height:auto;background-color: #FFFFFF;box-sizing: border-box;padding: 20px;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);margin-bottom: 10px;}
+    .order-container .section .user-main.tabs{height: 78px;padding: 15px 20px;}
+    .order-container .section .user-main .tabs-left{height: 100%;float: left;}
+    .order-container .section .user-main .tabs-left .item{width: 50px;height: 100%;float: left;margin:0 40px;}
+    .order-container .section .user-main .tabs-left .item a{width: 100%;height: 100%;display: block;}
+    .order-container .section .user-main .tabs-left .item a .icon{width: 24px;height: 24px;display: block;margin: 0 auto;position: relative;}
+    .order-container .section .user-main .tabs-left .item a .icon span{display: block;width: 18px;height: 18px;background-image: linear-gradient(90deg,#ff5353 0%,#ff2424 100%);position: absolute;top: -9px;left: -9px;font-style: normal;font-size: 13px;color: #f94b4b;line-height: 18px;text-align: center;border-radius: 50%;color: #fff;}
+    .order-container .section .user-main .tabs-left .item a .icon:before{width: 24px;height: 24px;background-position: -273px -370px;}
+    .order-container .section .user-main .tabs-left .item a p{font-size: 14px;color: #22272e;text-align: center;line-height: 20px;margin-top: 3px;}
+    .order-container .section .user-main .tabs-right{float: right;line-height: 48px;font-size: 14px;color: #22272e;}
+    .order-container .section .user-main .tabs-right a{display: block;float: right;padding-right: 16px;}
+    .order-container .section .user-main.order{height: 224px;padding-left: 68px;padding-top: 10px;}
+    .order-container .section .user-main .order-title{width: 100%;height: 40px;position: relative;float: left;margin-bottom: 0;}
+    .order-container .section .user-main .order-title .bag{display: block;position: absolute;left: -45px;top: 12px; width: 36px;height: 16px;background-image: linear-gradient(335deg,#e15616 0%,#ffb496 100%);border-radius: 2px;font-size: 10px;color: #FFFFFF;line-height: 16px;text-align: center;}
+    .order-container .section .user-main .order-title .title-name{float: left;line-height:  40px;font-size: 14px;color: #22272e;}
+    .order-container .section .user-main .order-title .title-name p{float: left;margin-right: 10px;}
+    .order-container .section .user-main .order-title .title-name p.state{color: #E15616;}
+    .order-container .section .user-main .order-title .title-type{float: left;width: 40px;height: 40px;background: url("/img/order/second.png")center center no-repeat;background-size: cover;}
+    .order-container .section .user-main .order-title .title-time{float: right;line-height:  40px;font-size: 12px;color: #9aa5b5;}
+    .order-container .section .user-main .order-content{width: 100%;height: auto;float: left;}
+    .order-container .section .user-main .order-content .order-item{width: 100%;height: 36px;float: left;}
+    .order-container .section .user-main .order-content .order-item p{float: left;margin-right: 50px;line-height: 36px;color: #22272e;font-size: 14px;}
+    .order-container .section .user-main .order-content .order-item p span{margin-left: 5px;}
+    .order-container .section .user-main .order-content .order-item p .red{color: #f94b4b;}
+    .order-container .section .user-main .order-content .order-botton{width: 100%;height: 36px;float: left;margin-top: 8px;}
+    .order-container .section .user-main .order-content .order-botton .btn{width: 88px;height: 34px;border-radius: 2px;border: 1px solid #FFF;float: right;margin-left: 16px;font-size: 14px;line-height: 34px;text-align: center;display: block;}
+    .order-container .section .user-main .order-content .order-botton .btn.cancel{border-color: #9aa5b5;background-color: #FFFFFF;color: #22272e;}
+    .order-container .section .user-main .order-content .order-botton .btn.primary{border-color: #E15616;background-color: #E15616;color: #FFFFFF;}
+    .order-container .section .user-main.product{height: 260px;padding: 20px 20px 10px 20px;}
+    .order-container .section .user-main .product-item{width: 173px;height: auto;float: left;margin-right: 15px;cursor: pointer;}
+    .order-container .section .user-main .product-item:last-child{margin-right: 0;}
+    .order-container .section .user-main .product-item .product-img{width: 173px;height: 173px;float: left;}
+    .order-container .section .user-main .product-item .product-img img{width: 173px;height: 173px;display: block;}
+    .order-container .section .user-main .product-item .product-name{width: 100%;height: 40px;float: left;margin-top: 10px;}
+    .order-container .section .user-main .product-item .product-name p{font-size: 14px;color: #93979f;text-align: justify;line-height: 20px;text-overflow: -o-ellipsis-lastline;overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;line-clamp: 2;-webkit-box-orient: vertical;}
+    .order-container .section .user-main .product-item .product-name p:hover{color: #E15616;text-decoration: underline;}
+
+}
+
+/**
+* 移动端
+*/
+@media screen and (max-width:768px){
+.navLayout{background:#FFF;border-top:1px solid #F5F5F5;border-bottom:1px solid #F5F5F5;}
+.navLayout .crumbs{display:none;}
+.navLayout .left{width:29.3vw;border-right:1px solid #F5F5F5;line-height:11.8vw;white-space:nowrap;text-indent:3.3vw;font-size:3.4vw;}
+.navLayout .left .title{color:#22272e;font-weight:bold;border-bottom:1px solid #f5f5f5;font-size: 3.7vw;}
+.navLayout .navList .tab{display:block;color:#22272e;position:relative}
+.navLayout .navList .tab:before{content:'\276F';font-weight:normal;position:absolute;right:1.4vw;top:1vw;transform:rotate(90deg);width:6.4vw;height:6.4vw;line-height:6.4vw;text-align:center;color:#bec2c9}
+.navLayout .navList .con a{display:block;color:#9aa5b5;}
+.navLayout .navList.on .tab:before{top:4vw;transform:rotate(270deg);color:#e15616}
+.navLayout .navList.on .tab{color:#e15616}
+.navLayout .navList .con a.on{color:#e15616;background-color:#ffe6dc}
+.navLayout .right{width:70.5vw}
+
+
+
+
+
+}
+

+ 0 - 113
src/main/resources/static/css/user-center/orderlist.css

@@ -1,113 +0,0 @@
-@charset "utf-8";
-li{list-style:none}
-/**
- * PC端
- */
-@media screen and (min-width:768px){
-    .navLayout {min-height: 900px;}
-    .crumbs{padding-left: 220px;}
-    .navLayout .left{float:left;width:200px;line-height:50px;white-space:nowrap;text-indent:16px;font-size:16px;background:#FFF}
-    .navLayout .left .title{color:#22272e;font-weight:bold;border-bottom:1px solid #f5f5f5}
-    .navLayout .navList .tab{display:block;color:#22272e;position:relative;cursor: pointer;}
-    .navLayout .navList .tab:before{content:'\276F';font-weight:normal;position:absolute;right:10px;top:0;transform:rotate(90deg);width:32px;height:32px;line-height:32px;text-align:center;color:#bec2c9}
-    .navLayout .navList .con{position:relative;}
-    .navLayout .navList .con:before,.navLayout .navList .con:after{content:'';position:absolute;width:168px;border-top:1px solid #f5f5f5;left:16px}
-    .navLayout .navList .con:before{top:0}
-    .navLayout .navList .con:after{bottom:0}
-    .navLayout .navList .con a{display:block;font-size:14px;color:#627386;text-indent:32px}
-    .navLayout .navList.on .tab:before{top:18px;transform:rotate(270deg);color:#e15616}
-    .navLayout .navList.on .tab{color:#e15616}
-    .navLayout .navList .con a.on{color:#e15616;background-color:#ffe6dc}
-    /*个人中心右侧*/
-    .navLayout .right{float:right;width:968px}
-    .user-header{width: 100%;height: 120px;box-sizing: border-box;padding: 20px;background-color: #FFF;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);}
-    .user-header .header-ml{width: 50%;height:80px;float: left;}
-    .user-header .header-ml .logo{width: 110px;height:78px;float: left;border: 1px solid #f5f5f5;border-radius: 2px;margin-right: 8px;}
-    .user-header .header-ml .logo img{width: 110px;height:78px;display: block;border-radius: 2px;}
-    .user-header .header-ml .account{float: left;}
-    .user-header .header-ml .account .name{line-height: 46px;font-size: 18px;font-weight: bold;color: #22272e;}
-    .user-header .header-ml .account .msg{font-size: 14px;line-height: 22px;color: #22272e;}
-    .user-header .header-ml .account .msg span{color: #22272e;display: inline-block;float: left;margin-right: 8px;}
-    .user-header .header-ml .account .msg .red{color: #f94b4b;font-style: normal;margin: 0 5px;}
-    .user-header .header-ml .account .msg a{display: inline-block;width: 64px;height: 22px;float: left;line-height: 22px;color: #FFFFFF;font-size:12px;text-align: center; background-image: linear-gradient(225deg,#61686f 0%,#313a43 100%);border-radius: 2px;}
-    .user-header .header-mr{height:80px;float: right;}
-    .user-header .header-mr .message{width: 100%;float: right;height: 28px;}
-    .user-header .header-mr .message .icon{width: 28px;height: 28px;float: right;display: block;position: relative;}
-    .user-header .header-mr .message .icon:before{width: 28px;height: 28px;background-position: -240px -370px}
-    .user-header .header-mr .message .icon a{display: block;width: 18px;height: 18px;background-image: linear-gradient(90deg,#ff5353 0%,#ff2424 100%);position: absolute;top: -9px;left: -9px;font-style: normal;font-size: 13px;color: #f94b4b;line-height: 18px;text-align: center;border-radius: 50%;color: #fff;}
-    .user-header .header-mr .money {width: 100%;height: 52px;line-height: 52px;font-size: 16px;}
-    .user-header .header-mr .money span{color: #e15616;}
-    .user-content{width: 100%;height: auto;margin-top: 27px;}
-    .user-content .title{width: 100%;height: 44px;line-height: 44px;font-size: 16px;text-align: left;color: #22272e;}
-    .user-content .title a{display: block;float: right;position: relative;padding-right: 36px;position: relative;}
-    .user-content .title a .icon{display: block;width: 18px;height: 18px;position: absolute;top: 5px;right: 10px;}
-    .user-content .title a .icon:before{width: 18px;height: 18px;background-position: -304px -32px;}
-    .user-content .section{width: 100%;height: auto;}
-    .user-content .section .user-main{width: 100%;height:auto;background-color: #FFFFFF;box-sizing: border-box;padding: 20px;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);margin-bottom: 10px;}
-    .user-content .section .user-main.tabs{height: 78px;padding: 15px 20px;}
-    .user-content .section .user-main .tabs-left{height: 100%;float: left;}
-    .user-content .section .user-main .tabs-left .item{width: 50px;height: 100%;float: left;margin:0 40px;}
-    .user-content .section .user-main .tabs-left .item a{width: 100%;height: 100%;display: block;}
-    .user-content .section .user-main .tabs-left .item a .icon{width: 24px;height: 24px;display: block;margin: 0 auto;position: relative;}
-    .user-content .section .user-main .tabs-left .item a .icon span{display: block;width: 18px;height: 18px;background-image: linear-gradient(90deg,#ff5353 0%,#ff2424 100%);position: absolute;top: -9px;left: -9px;font-style: normal;font-size: 13px;color: #f94b4b;line-height: 18px;text-align: center;border-radius: 50%;color: #fff;}
-    .user-content .section .user-main .tabs-left .item a .icon:before{width: 24px;height: 24px;background-position: -273px -370px;}
-    .user-content .section .user-main .tabs-left .item a p{font-size: 14px;color: #22272e;text-align: center;line-height: 20px;margin-top: 3px;}
-    .user-content .section .user-main .tabs-right{float: right;line-height: 48px;font-size: 14px;color: #22272e;}
-    .user-content .section .user-main .tabs-right a{display: block;float: right;padding-right: 16px;}
-    .user-content .section .user-main.order{height: 224px;padding-left: 68px;padding-top: 10px;}
-    .user-content .section .user-main .order-title{width: 100%;height: 40px;position: relative;float: left;margin-bottom: 0;}
-    .user-content .section .user-main .order-title .bag{display: block;position: absolute;left: -45px;top: 12px; width: 36px;height: 16px;background-image: linear-gradient(335deg,#e15616 0%,#ffb496 100%);border-radius: 2px;font-size: 10px;color: #FFFFFF;line-height: 16px;text-align: center;}
-    .user-content .section .user-main .order-title .title-name{float: left;line-height:  40px;font-size: 14px;color: #22272e;}
-    .user-content .section .user-main .order-title .title-name p{float: left;margin-right: 10px;}
-    .user-content .section .user-main .order-title .title-name p.state{color: #E15616;}
-    .user-content .section .user-main .order-title .title-type{float: left;width: 40px;height: 40px;background: url("/img/order/second.png")center center no-repeat;background-size: cover;}
-    .user-content .section .user-main .order-title .title-time{float: right;line-height:  40px;font-size: 12px;color: #9aa5b5;}
-    .user-content .section .user-main .order-content{width: 100%;height: auto;float: left;}
-    .user-content .section .user-main .order-content .order-item{width: 100%;height: 36px;float: left;}
-    .user-content .section .user-main .order-content .order-item p{float: left;margin-right: 50px;line-height: 36px;color: #22272e;font-size: 14px;}
-    .user-content .section .user-main .order-content .order-item p span{margin-left: 5px;}
-    .user-content .section .user-main .order-content .order-item p .red{color: #f94b4b;}
-    .user-content .section .user-main .order-content .order-botton{width: 100%;height: 36px;float: left;margin-top: 8px;}
-    .user-content .section .user-main .order-content .order-botton .btn{width: 88px;height: 34px;border-radius: 2px;border: 1px solid #FFF;float: right;margin-left: 16px;font-size: 14px;line-height: 34px;text-align: center;display: block;}
-    .user-content .section .user-main .order-content .order-botton .btn.cancel{border-color: #9aa5b5;background-color: #FFFFFF;color: #22272e;}
-    .user-content .section .user-main .order-content .order-botton .btn.primary{border-color: #E15616;background-color: #E15616;color: #FFFFFF;}
-    .user-content .section .user-main.product{height: 260px;padding: 20px 20px 10px 20px;}
-    .user-content .section .user-main .product-item{width: 173px;height: auto;float: left;margin-right: 15px;cursor: pointer;}
-    .user-content .section .user-main .product-item:last-child{margin-right: 0;}
-    .user-content .section .user-main .product-item .product-img{width: 173px;height: 173px;float: left;}
-    .user-content .section .user-main .product-item .product-img img{width: 173px;height: 173px;display: block;}
-    .user-content .section .user-main .product-item .product-name{width: 100%;height: 40px;float: left;margin-top: 10px;}
-    .user-content .section .user-main .product-item .product-name p{font-size: 14px;color: #93979f;text-align: justify;line-height: 20px;text-overflow: -o-ellipsis-lastline;overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;line-clamp: 2;-webkit-box-orient: vertical;}
-    .user-content .section .user-main .product-item .product-name p:hover{color: #E15616;text-decoration: underline;}
-    .user-content .section .user-main.news{height: 218px;padding: 13px 20px;}
-    .user-content .section .user-main .new-list{width: 100%;height: 32px;float: left;cursor: pointer;}
-    .user-content .section .user-main .new-list .text{width: 600px;line-height: 32px;font-size: 14px;color: #4a4f58;float: left;padding-left: 15px;position: relative; white-space: nowrap;text-overflow: ellipsis;overflow: hidden;word-break: break-all;}
-    .user-content .section .user-main .new-list .text:hover{color: #E15616;text-decoration: underline;}
-    .user-content .section .user-main .new-list .text:before{content: '';width: 8px;height: 8px;border-radius: 50%;background-color: #e15616;position: absolute;left: 0;top:10px;}
-    .user-content .section .user-main .new-list .time{line-height: 32px;font-size: 12px;color: #9aa5b5;float: right;}
-
-
-}
-
-/**
-* 移动端
-*/
-@media screen and (max-width:768px){
-.navLayout{background:#FFF;border-top:1px solid #F5F5F5;border-bottom:1px solid #F5F5F5;}
-.navLayout .crumbs{display:none;}
-.navLayout .left{width:29.3vw;border-right:1px solid #F5F5F5;line-height:11.8vw;white-space:nowrap;text-indent:3.3vw;font-size:3.4vw;}
-.navLayout .left .title{color:#22272e;font-weight:bold;border-bottom:1px solid #f5f5f5;font-size: 3.7vw;}
-.navLayout .navList .tab{display:block;color:#22272e;position:relative}
-.navLayout .navList .tab:before{content:'\276F';font-weight:normal;position:absolute;right:1.4vw;top:1vw;transform:rotate(90deg);width:6.4vw;height:6.4vw;line-height:6.4vw;text-align:center;color:#bec2c9}
-.navLayout .navList .con a{display:block;color:#9aa5b5;}
-.navLayout .navList.on .tab:before{top:4vw;transform:rotate(270deg);color:#e15616}
-.navLayout .navList.on .tab{color:#e15616}
-.navLayout .navList .con a.on{color:#e15616;background-color:#ffe6dc}
-.navLayout .right{width:70.5vw}
-
-
-
-
-
-}
-

+ 30 - 2
src/main/resources/static/js/common/serviceapi/order.service.js

@@ -18,6 +18,27 @@ var OrderApi = {
                 callback(res);
             });
         },
+        /* 设为默认地址 */
+        DefaultAddress: function (params, callback) {
+            Http.AjaxService({ url:'/personalCenter/defaultAddress', type:'POST', data:params, json:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /* 删除地址 */
+        DeleteAddress: function (params, callback) {
+            Http.AjaxService({ url:'/personalCenter/deleteAddress', type:'GET', data:params, json:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /* 删除地址 */
+        GetFindInvoice: function (params, callback) {
+            Http.AjaxService({ url:'/personalCenter/findInvoice', type:'GET', data:params, json:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
         /* 确认订单 */
         GetOrderConfirmInfo: function (params, callback) {
             Http.AjaxService({ url:'/order/confirm', type:'GET', data:params, json:false})
@@ -32,16 +53,23 @@ var OrderApi = {
                 callback(res);
             });
         },
+        /* 提交订单 */
+        ConfirmOrder: function (params, callback) {
+            Http.AjaxService({ url:'/order/submit', type:'POST', data:params, json:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
         /* 订单支付,效验付款规则 orderId 订单ID */
         OrderPaymentValidation: function (params, callback) {
-            Http.AjaxService({ url:'/order/paymentValidation', type:'GET', data:params, json:false, mask:false,replace:false})
+            Http.AjaxService({ url:'/order/paymentValidation', type:'GET', data:params, json:false})
             .then(function(res){
                 callback(res);
             });
         },
         /* 订单支付,效验付款规则 orderId 订单ID */
         OrderBalanceDeduction: function (params, callback) {
-            Http.AjaxService({ url:'/order/balanceDeduction', type:'post', data:params, json:false, mask:false,replace:false})
+            Http.AjaxService({ url:'/order/balanceDeduction', type:'post', data:params, json:false})
             .then(function(res){
                 callback(res);
             });

+ 289 - 45
src/main/resources/static/js/shopping/confirm.js

@@ -20,6 +20,7 @@ var shoppingConfirm = new Vue({
         productCount:'',//提交订单的商品数量
         addressList:[],//收货地址
         addressData:{},//初始化地址信息
+        hanldAddressData:{},//选择确定的地址信息
         isAddType:'',
         addAddressData:{
             addressID:'',
@@ -50,8 +51,8 @@ var shoppingConfirm = new Vue({
         isSubDisabled:false,
         isCheckedBalabce:false,
         isDefaultChecked:false,
-        isAddressListLength:false,
         balanceDeductionFlag:2,
+        isAddressListLength:false,
         invoiceType:'1',
         invoiceTitle:0,
         goodRemark:[],
@@ -62,16 +63,6 @@ var shoppingConfirm = new Vue({
         currentTab:0,
         choseAddressText:'',//选取的地址信息
         freightData:'',//运费信息
-        invoiceData:{
-            id:'',
-            invoiceTitle:'',	 //单位名称
-            corporationTaxNum:'',//纳税人识别号
-            registeredAddress: '',//单位地址
-            registeredPhone:'',	 //注册电话
-            openBank:'',		//开户银行
-            bankAccountNo: ''  ,//银行账号
-            type:0
-        }, //初始化发票信息
         orderInfo:[],//提交的商品信息
         payInfo:{},	//订单信息
         addTabList:[
@@ -85,6 +76,16 @@ var shoppingConfirm = new Vue({
             city: '',
             town: ''
         },
+        invoiceData:{//初始化发票信息
+            id:'',
+            invoiceTitle:'',	 //单位名称
+            corporationTaxNum:'',//纳税人识别号
+            registeredAddress: '',//单位地址
+            registeredPhone:'',	 //注册电话
+            openBank:'',		//开户银行
+            bankAccountNo: ''  ,//银行账号
+            type:0
+        },
         invoiceTypeList:[
             {value:'1',name:'不开发票'},
             {value:'2',name:'普通发票'},
@@ -102,13 +103,18 @@ var shoppingConfirm = new Vue({
         },
         checkedAddressItemIndex:0,
     },
+    filters: {
+        NumFormat:function(text) {
+            return Number(text).toFixed(2);
+        }
+    },
     computed: {
 
     },
     methods: {
-        getAddressList:function(userID,pageSize){//获取收货地址
+        getAddressList:function(userId,pageSize){//获取收货地址
             var _self = this;
-            OrderApi.GetAddressList({userID:userID,pageNum:1,pageSize:pageSize},function (response) {
+            OrderApi.GetAddressList({userID:userId,pageNum:1,pageSize:pageSize},function (response) {
                 if(response.code == 0){
                     var data = response.data;
                     if(data.results != ''){
@@ -117,10 +123,9 @@ var shoppingConfirm = new Vue({
                         _self.addressData =  data.results[0];
                         _self.addressID = data.results[0].addressID;
                         _self.townID = data.results[0].townID;
-                        // _self.getFreightData();
+                        _self.getFreightData();
                         _self.isAddressListLength = false;
                     }else{
-                        _self.isAddType == 'add';
                         _self.isAddressListLength = true;
                         _self.addressData = _self.addressData;
                         _self.GetProvinceFn()
@@ -130,19 +135,19 @@ var shoppingConfirm = new Vue({
                 }
             })
         },
-        getConfirmInfo: function (productIds, productCount) {
+        getConfirmInfo: function (productIds, productCount) {//订单初始化
             var _self = this;
             if(_self.userId ===0){return;}
             OrderApi.GetOrderConfirmInfo({userId: _self.userId,count: productCount,productIds: productIds},function(response){
                 if (response.code === 0 && response.data) {
                     var data = response.data;
                     _self.isRequest = true;
-                    // _self.goodsList = data.shopList;
-                    // _self.allPrice =  data.productTotalFee;
-                    // _self.allCount =  data.productCount;
-                    // _self.payAllPrice = data.productTotalFee;
-                    // _self.productKind = data.productKind;
-                    // _self.userMoney = data.userMoney;
+                    _self.goodsList = data.list;
+                    _self.allPrice =  data.totalPrice;
+                    _self.allCount =  data.totalCount;
+                    _self.payAllPrice = data.totalPrice;
+                    _self.productKind = data.productKind;
+                    _self.userMoney = data.userMoney;
                     _self.getAddressList(_self.userId,20);
                 }else{
                     CAIMEI.Alert(response.msg, '确定', false);
@@ -151,7 +156,7 @@ var shoppingConfirm = new Vue({
         },
         getFreightData :function(){//获取邮费信息
             var _self = this;
-            var params ={userId:_self.userID,productIds:_self.productIds,totalPrice:_self.allPrice,townId:_self.addressData.townID};
+            var params ={userId:_self.userId,productIds:_self.productIds,totalPrice:_self.allPrice,townId:_self.addressData.townID};
             OrderApi.GetOrderPostage(params,function (response) {
                 if(response.code == 0){
                     _self.freightData = response.data;
@@ -299,9 +304,37 @@ var shoppingConfirm = new Vue({
             _self.addAddressData = item;
             _self.addAddressData.allAddress=item.province+''+item.city+''+item.town;
         },
+        defaultAddressFn :function(addressID){//列表直接设为默认地址
+            var _self = this;
+            OrderApi.DefaultAddress({addressId:addressID,userId:_self.userId},function (response) {
+                if(response.code == 0 ){ //成功
+                    _self.addressList = [];
+                    _self.getAddressList(_self.userId,20);
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                }
+            });
+        },
+        deleteAddress :function(addressID){//列表删除单个地址
+            var _self = this;
+            CAIMEI.Modal('确定要删除该地址?','取消','确定',function () {
+                OrderApi.DeleteAddress({addressID:addressID,userID:_self.userId},function (response) {
+                    if(response.code == 0 ){ //删除成功
+                        CAIMEI.dialog('删除成功');
+                        _self.addressList = [];
+                        _self.getAddressList(_self.userId,20);
+                    }else{
+                        CAIMEI.Alert(response.msg,'确定',false);
+                    }
+                })
+            });
+        },
+        changeHandle :function(index) {//商品备注的值被改变后
+            this.goodsList[index].note = this.goodRemark[index];
+            // console.log(this.goodsList)
+        },
         ConfirmAddressFn :function(){//保存地址
             var _self = this;
-            console.log( _self.isAddType);
             if(_self.addAddressData.townID == ""){
                 CAIMEI.dialog('请选择所在地区');
                 return;
@@ -327,7 +360,6 @@ var shoppingConfirm = new Vue({
                         mobile:_self.addAddressData.mobile,			//手机
                         defaultFlag:_self.addAddressData.defaultFlag//是否默认收货地址(0 不是默认,1 默认)
                 };
-                // console.log('ADD',params);
             }else{
                 var params = {
                         addressID:_self.addAddressData.addressID,//编辑保存地址ID
@@ -343,7 +375,7 @@ var shoppingConfirm = new Vue({
             OrderApi.AddSaveAddress(params,function(response){
                 if(response.code == 0){
                     CAIMEI.dialog('保存成功');
-                    _self.getAddressList(_self.userID,20);
+                    _self.getAddressList(_self.userId,20);
                     _self.isShwoAddModel = false;
                     _self.isConDisabled = false;
                 }else{
@@ -351,36 +383,248 @@ var shoppingConfirm = new Vue({
                 }
             });
         },
+        ConfirmOrderFn :function(){//提交订单
+            var _self = this;
+            if (_self.isSubDisabled) { return false; }
+            if(_self.addressID == ''){
+                CAIMEI.dialog('请先添加收货地址~');
+                return;
+            }
+            //选择开发票处理
+            if(_self.invoiceType == '1'){
+                CAIMEI.returnedTarget();
+                _self.invoiceData = Object.assign(_self.invoiceData,'',{type:0});
+            }else if(_self.invoiceType == '2'){
+                switch(_self.peopleInvoiceData.invoiceTitleType){
+                    case '0':
+                        if(_self.peopleInvoiceData.invoiceTitle == ""){
+                            CAIMEI.dialog('请输入个人抬头');
+                            return;
+                        }
+                        break;
+                    case '1':
+                        if(_self.peopleInvoiceData.invoiceTitle == ""){
+                            CAIMEI.dialog('请输入公司抬头');
+                            return
+                        }
+                        if(_self.peopleInvoiceData.corporationTaxNum == ""){
+                            CAIMEI.dialog('请输入纳税人识别号');
+                            return
+                        }
+                        break;
+                }
+            }else if(_self.invoiceType == '3'){
+                if(_self.invoiceData.invoiceTitle == ""){
+                    CAIMEI.dialog('请输入单位名称');
+                    return;
+                }
+                if(_self.invoiceData.corporationTaxNum == ""){
+                    CAIMEI.dialog('请输入纳税人识别号');
+                    return;
+                }
+                if(_self.invoiceData.registeredAddress == ""){
+                    CAIMEI.dialog('请输入单位地址');
+                    return;
+                }
+                if(_self.invoiceData.registeredPhone == ""){
+                    CAIMEI.dialog('请输入注册电话');
+                    return;
+                }
+                if(_self.invoiceData.openBank == ""){
+                    CAIMEI.dialog('请输入开户银行');
+                    return;
+                }
+                if(_self.invoiceData.bankAccountNo == ""){
+                    CAIMEI.dialog('请输入银行账号');
+                    return;
+                }
+                CAIMEI.returnedTarget();
+                _self.invoiceData = Object.assign(_self.invoiceData,'',{type:2});
+            }
+            //商品信息
+            _self.orderInfo = _self.goodsList.map(function(el){
+                var productInfo = [];
+                el.cartList.forEach(function(item){
+                    productInfo.push({
+                        productId:item.productId,
+                        productNum:item.number,
+                        presentNum:0
+                    })
+                });
+                return {shopId:el.id,note:el.note?el.note:'',productInfo:productInfo}
+            });
+            //订单信息
+            _self.payInfo = {
+                clauseId:0,//条款(暂时保留)
+                orderShouldPayFee:_self.payAllPrice.toFixed(2),//提交的总价
+                balancePayFlag:_self.balanceDeductionFlag,//余额抵扣的状态
+                freight:parseInt(_self.hanldFreight).toFixed(2),//邮费
+                freePostFlag:parseInt(_self.hanldFreePostFlag)//运费形式
+            };
+            var  params = {
+                    orderSource:1,
+                    clubUserId:_self.userId,
+                    cartType:_self.cartType,
+                    addressId:_self.addressID,
+                    orderInfo:_self.orderInfo,
+                    payInfo:_self.payInfo,	//订单信息
+                    orderInvoice:_self.invoiceData
+            };
+            // console.log('最后参数',params);
+            //提交
+            _self.isSubDisabled = true;
+            OrderApi.ConfirmOrder({'params':JSON.stringify(params)},function (response) {
+                // console.log(response);
+                if(response.code === 1){
+                    var data = { payableAmount: _self.deductMoney };
+                    CAIMEI.Storage.removeItem('confirmOrderInfo');
+                    CAIMEI.Storage.setItem('confirmOrderInfo',JSON.stringify({data:data}));
+                    window.location.href = '/order/paySuccess.jsp';
+                }else if(response.code === 2){
+                    var data = {
+                        orderID:response.data.orderID,
+                        orderNo:response.data.orderNo,
+                        orderMark:response.data.orderMark,
+                        payableAmount:response.data.payableAmount
+                    };
+                    CAIMEI.Storage.removeItem('confirmOrderInfo');
+                    CAIMEI.Storage.setItem('confirmOrderInfo',JSON.stringify({data:data}));
+                    window.location.href = '/web/order/view/pay/caimei-paycash.jsp?type=confirm&orderID='+response.data.orderID;
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                    _self.isSubDisabled = false;
+                }
+            })
+        },
+        checkedAddressItemFn:function(index,item){//选择地址处理
+            var _self = this;
+            _self.checkedAddressItemIndex = index;
+            _self.hanldAddressData = item;
+        },
+        ConfirmCheckedAddressFn:function(){//确定使用选择的地址
+            var _self = this;
+            _self.addressData =  _self.hanldAddressData;
+            _self.isShowAddress = false;
+        },
+        HideCheckedAddressFn :function(){//隐藏选择地址列表
+            var _self = this;
+            _self.isShowAddress = false;
+        },
         CancelAddressFn:function(){
-            this.isAddressListLength = false;
+            var _self = this;
+            _self.isShwoAddModel = false;
+        },
+        ShowCheckedAddressFn :function(){//显示地址列表选择地址
+            var _self = this;
+            _self.isShowAddress = true;
+        },
+        ShowAddAddressFn :function(){//显示新增地址
+            var _self = this;
+            _self.isAddType = 'add';
+            _self.isShwoAddModel = true;
+            _self.addressData = this.addressData;
+            _self.GetProvinceFn();
+        },
+        radioChange :function(value){//发票信息选择
+            var _self=this;
+            _self.invoiceType = event.target.value;
+            for (var i = 0; i < _self.invoiceTypeList.length; i++) {
+                if (_self.invoiceTypeList[i].value === _self.invoiceType) {
+                    _self.current = i;
+                    break;
+                }
+            }
+            switch(_self.invoiceType){
+                case '1':
+                    CAIMEI.returnedTarget();
+                    _self.invoiceData = Object.assign(_self.invoiceData,'',{type:0});
+                    break;
+                case '2':
+                    _self.invoiceTitle = "0";
+                    _self.peopleInvoiceData.invoiceTitleType = "0";
+                    CAIMEI.returnedTarget();
+                    _self.invoiceData = Object.assign(_self.peopleInvoiceData,'',{type:1});
+                    break;
+                case '3':
+                    _self.getUseFindInvoice();
+                    break;
+            }
         },
-        ShowCheckedAddressFn :function(){//显示地址列表
-            this.isShowAddress = true;
+        radioChangeTitle :function(event) {//发票抬头选择
+            this.peopleInvoiceData.invoiceTitleType = event.target.value;
+            for (var i = 0; i < this.invoiceTitleList.length; i++) {
+                if (this.invoiceTitleList[i].value === this.peopleInvoiceData.invoiceTitleType) {
+                    break;
+                }
+            }
+            switch(this.peopleInvoiceData.invoiceTitleType){
+                case '1':
+                    this.peopleInvoiceData.invoiceTitle = "";
+                    this.peopleInvoiceData.invoiceContent = "明细";
+                    break;
+            }
         },
-        HideCheckedAddressFn :function(){//显示地址列表
-            this.isShowAddress = false;
+        getUseFindInvoice :function(){//获取发票信息
+            var _self = this;
+            OrderApi.GetFindInvoice({userId:_self.userId},function(response){
+                if(response.code == 0){
+                    if(response.data == null){
+                        CAIMEI.returnedTarget();
+                        _self.invoiceData = Object.assign(_self.invoiceData,'',{type:0,userId:_self.userId})
+                    }else{
+                        _self.invoiceData = response.data
+                    }
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                }
+            })
         },
-        ShowAddAddressFn :function(){//显示地址列表
-            this.isAddressListLength = true;
+        checkedBalabce :function(){//勾选使用余额
+            if(this.userMoney > 0){
+                this.isCheckedBalabce = !this.isCheckedBalabce;
+                if(this.isCheckedBalabce){
+                    this.balanceDeductionFlag =1;
+                    this.attributePallPrice()
+                }else{
+                    if(this.hanldFreePostFlag == 1 || this.hanldFreePostFlag == '1'){
+                        this.payAllPrice = this.allPrice+ parseInt(this.freightData.freight);
+                    }else{
+                        this.payAllPrice = this.allPrice;
+                    }
+                    this.deductMoney = 0.00;
+                    this.balanceDeductionFlag = 2;
+                }
+            }else{
+                return
+            }
+        },
+        gernerateId :function(index){
+            return "male_" +index
+        },
+        gernerateTitleId :function(index){
+            return "title_" +index
         },
     },
     created: function () {
-        this.subType = getUrlParam("type") ? getUrlParam("type")*1 : "";
+        var _self = this;
+        _self.subType = getUrlParam("type") ? getUrlParam("type")*1 : "";
         if(globalUserData){
-            this.userId = globalUserData.userId;
-            this.userIdentity = globalUserData.identity;
-            this.userToken = globalUserData.token;
+            _self.userId = globalUserData.userId;
+            _self.userIdentity = globalUserData.identity;
+            _self.userToken = globalUserData.token;
             // subType:(1购物车提交[对应表cm_cart],2直接购买提交)
-            if(this.subType === 1) {
-                var productIds = window.localStorage.getItem("shoppingProductIds");
+            if(_self.subType === 1) {
+                _self.cartType= 1;
+                _self.productIds = window.localStorage.getItem("shoppingProductIds");
                 // 获取列表数据
-                this.getConfirmInfo(productIds, null);
-            }else if(this.subType === 2){
-                var productId = getUrlParam("id");
-                var count = getUrlParam("count");
-                if(productId && count) {
+                _self.getConfirmInfo( _self.productIds, null);
+            }else if(_self.subType === 2){
+                _self.cartType= 2;
+                _self.productIds = getUrlParam("id");
+                _self.productKind = getUrlParam("count");
+                if(_self.productIds && _self.productKind) {
                     // 获取列表数据
-                    this.getConfirmInfo(productId, count);
+                    _self.getConfirmInfo(_self.productIds,_self.productKind);
                 }else{
                     CAIMEI.Alert('参数错误,请重新提交订单!', '确定', false);
                 }

+ 3 - 0
src/main/resources/static/js/user-center/dashboard.js

@@ -54,6 +54,9 @@ var helpSuggestion = new Vue({
                 })
             });
         },
+        orderListPath:function(index){
+            window.location.href='/user/order/list.html?state='+index;
+        },
         showBadge:function(n){//处理标签
             var num ='';
             if(n>100){num = 99}else{num = n;}

+ 75 - 0
src/main/resources/static/js/user-center/order/detail.js

@@ -0,0 +1,75 @@
+jqMultipleShow("click", ".navList", ".tab", ".con");
+var helpSuggestion = new Vue({
+    el: "#dashboard",
+    data: {
+        btnLoading: false,
+        isRequset:false,
+        userId: 0,
+        degree:'',
+        userInfo:{},
+        formData:new FormData(),
+        unReadMessageCount:'',//消息数
+        confirmedCount:'',//待確認數量
+        paymentCount:'',//待付款
+        waitShipmentsCount:'',//待发货
+        shipmentsCount:'',//已发货
+        salesReturnCount:'',//退货款
+        productList:[],//推荐商品
+        newsList:[],//新闻动态
+    },
+    methods: {
+        GetMyPcCenterInfo:function(){
+            var _self = this;
+            UserApi.GetMyPcCenterInfo({userId:_self.userId},function (response) {
+                if(response.code == 0){
+                    var data = response.data;
+                    _self.userInfo = data.user;
+                    _self.degree = data.degree;
+                    _self.unReadMessageCount = _self.showBadge(data.unReadMessageCount);
+                    _self.confirmedCount = _self.showBadge(data.confirmedCount);
+                    _self.paymentCount = _self.showBadge(data.paymentCount);
+                    _self.waitShipmentsCount = _self.showBadge(data.waitShipmentsCount);
+                    _self.shipmentsCount = _self.showBadge(data.shipmentsCount);
+                    _self.salesReturnCount = _self.showBadge(data.salesReturnCount);
+                    _self.productList = data.homePageAdvertiseList;
+                    _self.newsList = data.homePageInfoList;
+                    _self.isRequset = true;
+                }else{
+                    CAIMEI.Alert(response.msg, '确定', false);
+                }
+            })
+        },
+        uploadUserPuploadAvatar: function(event){//上传头像
+            var _self = this;
+            var inputDOM = _self.$refs.clubUseLogo;
+            var file = inputDOM.files;
+            _self.formData.append('file', file[0]);
+            PublicApi.uploadimg(_self.formData,function(response){
+                _self.userInfo.image = response.data;
+                event.target.value = '';
+                UserApi.UserPuploadAvatar({userId:_self.userId,image:response.data},function(res){
+                    if(res.code==0){
+                        _self.GetMyPcCenterInfo();
+                    }
+                })
+            });
+        },
+        orderListPath:function(index){
+            window.location.href='/user/order/list.html?state='+index;
+        },
+        showBadge:function(n){//处理标签
+            var num ='';
+            if(n>100){num = 99}else{num = n;}
+            return num;
+        },
+        toFixedFn:function(text){//处理小数点后两位数
+            return Number(text).toFixed(2);
+        },
+    },
+    mounted: function () {
+        if(globalUserData){
+            this.userId = globalUserData.userId;
+            this.GetMyPcCenterInfo();
+        }
+    }
+});

+ 83 - 0
src/main/resources/static/js/user-center/order/list.js

@@ -0,0 +1,83 @@
+jqMultipleShow("click", ".navList", ".tab", ".con");
+var helpSuggestion = new Vue({
+    el: "#dashboard",
+    data: {
+        btnLoading: false,
+        isRequset:false,
+        userId: 0,
+        degree:'',
+        orderTabBarIndex:0,
+        orderTabBar: [
+            {state: 0,text: '全部订单',bages:2},
+            {state: 1,text: '待确认',bages:2},
+            {state: 2,text: '待付款',bages:0},
+            {state: 3,text: '待发货',bages:2},
+            {state: 4,text: '已发货',bages:30},
+            {state: 5,text: '退货/款',bages:20}
+        ],
+        formData:new FormData(),
+        unReadMessageCount:'',//消息数
+        confirmedCount:'',//待確認數量
+        paymentCount:'',//待付款
+        waitShipmentsCount:'',//待发货
+        shipmentsCount:'',//已发货
+        salesReturnCount:'',//退货款
+        productList:[],//推荐商品
+        newsList:[],//新闻动态
+    },
+    methods: {
+        GetMyPcCenterInfo:function(){
+            var _self = this;
+            UserApi.GetMyPcCenterInfo({userId:_self.userId},function (response) {
+                if(response.code == 0){
+                    var data = response.data;
+                    _self.userInfo = data.user;
+                    _self.degree = data.degree;
+                    _self.unReadMessageCount = _self.showBadge(data.unReadMessageCount);
+                    _self.confirmedCount = _self.showBadge(data.confirmedCount);
+                    _self.paymentCount = _self.showBadge(data.paymentCount);
+                    _self.waitShipmentsCount = _self.showBadge(data.waitShipmentsCount);
+                    _self.shipmentsCount = _self.showBadge(data.shipmentsCount);
+                    _self.salesReturnCount = _self.showBadge(data.salesReturnCount);
+                    _self.productList = data.homePageAdvertiseList;
+                    _self.newsList = data.homePageInfoList;
+                    _self.isRequset = true;
+                }else{
+                    CAIMEI.Alert(response.msg, '确定', false);
+                }
+            })
+        },
+        uploadUserPuploadAvatar: function(event){//上传头像
+            var _self = this;
+            var inputDOM = _self.$refs.clubUseLogo;
+            var file = inputDOM.files;
+            _self.formData.append('file', file[0]);
+            PublicApi.uploadimg(_self.formData,function(response){
+                _self.userInfo.image = response.data;
+                event.target.value = '';
+                UserApi.UserPuploadAvatar({userId:_self.userId,image:response.data},function(res){
+                    if(res.code==0){
+                        _self.GetMyPcCenterInfo();
+                    }
+                })
+            });
+        },
+        orderListPath:function(index){
+            window.location.href='/user/order/list.html?state='+index;
+        },
+        showBadge:function(n){//处理标签
+            var num ='';
+            if(n>100){num = 99}else{num = n;}
+            return num;
+        },
+        toFixedFn:function(text){//处理小数点后两位数
+            return Number(text).toFixed(2);
+        },
+    },
+    mounted: function () {
+        if(globalUserData){
+            this.userId = globalUserData.userId;
+            // this.GetMyPcCenterInfo();
+        }
+    }
+});

+ 32 - 0
src/main/resources/static/js/utils.js

@@ -20,6 +20,14 @@ CAIMEI.Storage = {
             return name;
         }
     },
+    removeItem:function(key){
+        if(isWuHeng){
+            return window.localStorage.removeItem(key);
+        }else{
+            var name = getCookie(key);
+            return name;
+        }
+    },
     clear:function(){
         if(isWuHeng){
             window.localStorage.clear();
@@ -177,6 +185,30 @@ CAIMEI.dialog = function(content,flg,callback){
         }
     });
 };
+/*对象合并 IE 兼容方法
+ * @param
+ * @auth zhjy
+ */
+CAIMEI.returnedTarget = function(){
+    if (typeof Object.assign != 'function') {
+        Object.assign = function(target) {
+            'use strict';
+            if (target == null) {throw new TypeError('Cannot convert undefined or null to object');}
+            target = Object(target);
+            for (var index = 1; index < arguments.length; index++) {
+                var source = arguments[index];
+                if (source != null) {
+                    for (var key in source) {
+                        if (Object.prototype.hasOwnProperty.call(source, key)) {
+                            target[key] = source[key];
+                        }
+                    }
+                }
+            }
+            return target;
+        };
+    }
+};
 /*手机校验
  * @param m 输入的手机号
  * @auth zhjy

+ 185 - 38
src/main/resources/templates/shopping/confirm.html

@@ -25,10 +25,40 @@
             <h1>确认订单<span>(填写并核对订单信息)</span></h1>
         </div>
     </div>
-    <div class="container" :class="isRequest ? 'active' : ''" v-show="isRequest">
-        <div class="content">
+    <div class="container clear" :class="isRequest ? 'active' : ''" v-show="isRequest">
+        <div class="content" :style="{height:isShwoAddModel ? '318px' : 'auto'}">
             <div class="title">收货人信息</div>
-            <div class="section address-none" v-if="isAddressListLength">
+            <div class="section address"  v-if="addressList.length == 0">
+                <div class="address-info">
+                    <p class="info-p">暂无收货地址信息,请新建地址</p>
+                </div>
+                <div class="address-sub add">
+                    <a class="btn btn-confirm"  href="javascript:void(0)" @click="ShowAddAddressFn">新建地址</a>
+                </div>
+            </div>
+            <div class="section address" v-else>
+                <div class="address-info">
+                    <div class="info-left">
+                        <p><span class="label">收货人:</span>{{addressData.shouHuoRen}}</p>
+                        <p><span class="label">联系方式:</span>{{addressData.mobile}}</p>
+                        <p><span class="label">收货地址:</span>{{addressData.province}}{{addressData.city}}{{addressData.town}}{{addressData.address}}</p>
+                    </div>
+                    <div class="info-right">
+                        <div class="info-top">
+                            <div class="defau" v-if="addressData.defaultFlag == 1">
+                                <i class="icon mIcon"></i>
+                                <span class="span-s">默认地址</span>
+                            </div>
+                            <a href="javascript:void(0)" @click="editAddress">修改</a>
+                        </div>
+                    </div>
+                </div>
+                <div class="address-sub">
+                    <a class="btn btn-none"  href="javascript:void(0)" @click="ShowCheckedAddressFn">选择地址</a>
+                    <a class="btn btn-confirm"  href="javascript:void(0)" @click="ShowAddAddressFn">新建地址</a>
+                </div>
+            </div>
+            <div class="section address-none" v-if="isShwoAddModel">
                 <div class="address-main clear">
                     <div class="formLine">
                         <div class="label"><p><em>*</em>联系地址:</p></div>
@@ -77,63 +107,180 @@
                     </div>
                 </div>
             </div>
-            <div class="section address" v-else>
-                <div class="address-info">
-                    <div class="info-left">
-                        <p><span class="label">收货人:</span>{{addressData.shouHuoRen}}</p>
-                        <p><span class="label">联系方式:</span>{{addressData.mobile}}</p>
-                        <p><span class="label">收货地址:</span>{{addressData.province}}{{addressData.city}}{{addressData.town}}{{addressData.address}}</p>
+        </div>
+        <div class="content">
+            <div class="title">进货清单</div>
+            <div class="section product">
+                <div class="title">
+                    <div class="tr tr-info">商品</div>
+                    <div class="tr tr-amount">数量</div>
+                    <div class="tr tr-price">单价(元)</div>
+                    <div class="tr tr-sum">小计(元)</div>
+                </div>
+                <div class="good_content">
+                    <div class="good_main clearfix" v-for="(item, index) in goodsList" :key="index">
+                        <div class="main_title">{{item.name}}</div>
+                        <div class="main_content ">
+                            <div class="main_content_ul" v-for="(pros, prosIndex) in item.cartList" :key="prosIndex">
+                                <div class="th th-info">
+                                    <div class="th-inner">
+                                        <div class="th-image"><img :src="pros.image" alt=""></div>
+                                        <div class="th-name">{{pros.name}}</div>
+                                    </div>
+                                </div>
+                                <div class="th th-amount"><div class="th-inner"><p>{{pros.number}}</p></div></div>
+                                <div class="th th-price"><div class="th-inner"><p>¥{{pros.price | NumFormat}}</p></div></div>
+                                <div class="th th-sum"><div class="th-inner"><p>¥{{(pros.price*pros.number) | NumFormat}}</p></div></div>
+                            </div>
+                            <div class="main_content_bt">合计: <span>¥{{item.totalPrice | NumFormat}}</span></div>
+                        </div>
+                        <div class="main_footer">
+                            <span>留言:</span>
+                            <input type="text" class="main_input" placeholder="告诉卖家您的特殊要求" v-model="goodRemark[index]" @change="changeHandle(index)">
+                        </div>
                     </div>
-                    <div class="info-right">
-                        <div class="info-top">
-                            <i class="icon mIcon"></i>
-                            <span class="span-s">默认地址</span>
-                            <a href="javascript:void(0)">修改</a>
+                </div>
+            </div>
+        </div>
+        <div class="content">
+            <div class="title">发票信息</div>
+            <div class="section invoice">
+                <div class="invoice-tabs">
+                    <span>发票类型:</span>
+                    <div class="tab-radio">
+                        <label class="diyBox" v-for="(item, index) in invoiceTypeList" :key="index" @click="radioChange">
+                            <input type="radio" name="invoiceType" v-model="invoiceType" :value="item.value" checked><i class="icon mIcon">{{item.name}}</i>
+                        </label>
+                    </div>
+                </div>
+                <div class="invoice-content clearfix" v-if="invoiceType == '2'">
+                    <div class="main_content">
+                        <span>发票内容:</span>
+                        <div class="main_item">商品明细</div>
+                    </div>
+                    <div class="main_content">
+                        <span>发票类型:</span>
+                        <div class="tab-radio">
+                            <label class="diyBox" v-for="(item, index) in invoiceTitleList" :key="index" @click="radioChangeTitle">
+                                <input type="radio" name="invoiceTitle" v-model="invoiceTitle" :value="item.value" checked><i class="icon mIcon">{{item.name}}</i>
+                            </label>
+                        </div>
+                    </div>
+                    <div class="main_content">
+                        <div class="main_item_conten">
+                            <div class="group-from" v-if="peopleInvoiceData.invoiceTitleType == '0'">
+                                <input class="label-input" type="text" v-model="peopleInvoiceData.invoiceTitle"   placeholder="请填写个人抬头" maxlength="20">
+                            </div>
+                            <div class="group-from" v-if="peopleInvoiceData.invoiceTitleType == '1'">
+                                <input class="label-input" type="text" v-model="peopleInvoiceData.invoiceTitle"   placeholder="请填写公司抬头" maxlength="20">
+                            </div>
+                            <div class="group-from" v-if="peopleInvoiceData.invoiceTitleType == '1'">
+                                <input class="label-input" type="text" v-model="peopleInvoiceData.corporationTaxNum"   placeholder="请填写纳税人识别号" maxlength="20">
+                            </div>
                         </div>
                     </div>
                 </div>
-                <div class="address-sub">
-                    <a class="btn btn-none"  href="javascript:void(0)" @click="ShowCheckedAddressFn">选择地址</a>
-                    <a class="btn btn-confirm"  href="javascript:void(0)" @click="ShowAddAddressFn">新建地址</a>
+                <div class="invoice-main clearfix" v-if="invoiceType == '3'">
+                    <div class="invoice-from">
+                        <span class="label">单位名称:</span>
+                        <input class="label-input" type="text" v-model="invoiceData.invoiceTitle" placeholder="请填写单位信息(必填)" maxlength="20">
+                    </div>
+                    <div class="invoice-from">
+                        <span class="label">纳税人识别号:</span>
+                        <input class="label-input" type="text" v-model="invoiceData.corporationTaxNum" placeholder="请填写纳税人识别号(必填)" maxlength="20">
+                    </div>
+                    <div class="invoice-from">
+                        <span class="label">注册地址:</span>
+                        <input class="label-input" type="text" v-model="invoiceData.registeredAddress" placeholder="请填写单位注册地址(必填)" maxlength="40">
+                    </div>
+                    <div class="invoice-from">
+                        <span class="label">注册电话:</span>
+                        <input class="label-input" type="text" v-model="invoiceData.registeredPhone" placeholder="请填写注册电话(必填)" maxlength="15">
+                    </div>
+                    <div class="invoice-from">
+                        <span class="label">开户银行:</span>
+                        <input class="label-input" type="text" v-model="invoiceData.openBank"   placeholder="请填写开户银行(必填)" maxlength="10">
+                    </div>
+                    <div class="invoice-from">
+                        <span class="label">银行账号:</span>
+                        <input class="label-input" type="text" v-model="invoiceData.bankAccountNo" placeholder="请填写银行账号(必填)" maxlength="19">
+                    </div>
                 </div>
             </div>
         </div>
         <div class="content">
-            <div class="title">进货清单</div>
-            <div class="section">
-
+            <div class="title">使用余额</div>
+            <div class="section userMoney">
+                <i class="icon mIcon" @click="checkedBalabce" :class="isCheckedBalabce ? 'icon-gouxuan' : 'icon-weigouxuan'" v-if="userMoney > 0"></i>
+                <span class="text">当前余额:<span class="red">¥{{userMoney | NumFormat}}</span></span>
+                <span class="text">已使用:<span class="red">¥{{deductMoney | NumFormat}}</span></span>
+                <span class="text">剩余:<span class="red">¥{{surplusMoney | NumFormat}}</span></span>
             </div>
         </div>
+        <!-- 结算信息 -->
         <div class="content">
-            <div class="title">发票信息</div>
-            <div class="section">
-
+            <div class="section footer">
+                <div class="footer_content">
+                    <div class="footer_left fl">
+                        <p>商品种类:</p>
+                        <p>数量总计:</p>
+                        <p v-show="addressList.length>0">运费<span v-if="freightData.freePostFlag == 1">(运费可选择到付哟~)</span>:</p>
+                        <p>抵扣账户余额:</p>
+                        <p>总价:</p>
+                    </div>
+                    <div class="footer_right fr">
+                        <p>{{productKind}}种</p>
+                        <p>{{allCount}}件</p>
+                        <div v-show="addressList.length>0">
+                            <div class="select" v-if="freightData.freePostFlag == 1 ">
+                                <select v-model="selectedFreight"  @change='getValueFreight'>
+                                            <option v-for="x in optionList" :value="x">{{x}}</option>
+                                        </select>
+                            </div>
+                            <p v-else><span>{{freightText}}</span></p>
+                        </div>
+                        <p class="red">¥{{deductMoney | NumFormat}}</p>
+                        <p class="red">¥{{payAllPrice | NumFormat}}</p>
+                    </div>
+                </div>
             </div>
         </div>
-        <div class="content">
-            <div class="title">使用余额</div>
-            <div class="section">
-
+        <div class="footer_button" :class="isFiexdClass">
+            <div class="footer_inner">
+                <div class="button_back fl"><a href="/cart.html" class="back"><i class="icon mIcon"></i>返回购物车</a></div>
+                <div class="button_confim fr">
+                    <P>总价:<span>¥{{payAllPrice | NumFormat}}</span></P>
+                    <a href="javascript:void(0);" class="confimBtn"  @click="ConfirmOrderFn" :class="isSubDisabled ?'active':''">提交订单</a>
+                </div>
             </div>
         </div>
     </div>
-    <div class="model-address-content" v-if="isShowAddress">
+    <!--选择地址弹窗-->
+    <div class="model-address-content" v-if="isShowAddress" v-cloak>
         <div class="model-content">
             <div class="title"><p>选择地址</p><i class="icon mIcon" @click="HideCheckedAddressFn"></i></div>
             <div class="content">
-                <div class="list" v-for="(item, index) in addressList" :class="checkedAddressItemIndex == index ? 'checked' : ''">
-                    <p><span class="label">收货人:</span>{{item.shouHuoRen}}</p>
-                    <p><span class="label">联系方式:</span>{{item.mobile}}</p>
-                    <p><span class="label">收货地址:</span>{{item.province}}{{item.city}}{{item.town}}{{item.address}}</p>
-                    <div class="list-defalut">
-                        <i class="icon mIcon"></i>
-                        <span class="span-s">默认地址</span>
-                    </div>
-                   <div class="seclet"><i class="icon mIcon"></i></div>
+                <div class="list" v-for="(item, index) in addressList" :class="checkedAddressItemIndex == index ? 'checked' : ''" @click.stop="checkedAddressItemFn(index,item)">
+                    <div class="list-left">
+                        <p><span class="label">收货人:</span>{{item.shouHuoRen}}</p>
+                        <p><span class="label">联系方式:</span>{{item.mobile}}</p>
+                        <p><span class="label">收货地址:</span>{{item.province}}{{item.city}}{{item.town}}{{item.address}}</p>
+                    </div>
+                    <div class="list-right">
+                        <div class="list-defalut" v-if="item.defaultFlag == 1">
+                            <i class="icon mIcon"></i>
+                            <span class="span-s">默认地址</span>
+                        </div>
+                        <div class="list-defalut" v-else>
+                            <span class="span-s" @click.stop="defaultAddressFn(item.addressID)">设为默认地址</span>
+                        </div>
+                        <a class="list-btn" href="javascript:void(0)" @click.stop="deleteAddress(item.addressID)">删除</a>
+                    </div>
+                    <div class="seclet"><i class="icon mIcon"></i></div>
                 </div>
             </div>
             <div class="button">
-                <a class="btn btn-confirm" href="javascript:void(0)">保存并使用</a>
+                <a class="btn btn-confirm" href="javascript:void(0)"@click="ConfirmCheckedAddressFn">确定</a>
                 <a class="btn btn-cancel" href="javascript:void(0)" @click="HideCheckedAddressFn">取消</a>
             </div>
         </div>

+ 22 - 12
src/main/resources/templates/user-center/dashboard.html

@@ -38,7 +38,7 @@
                         <div class="message">
                             <a href="/user/message/list.html">
                                 <i class="icon mIcon">
-                                    <span  v-if="unReadMessageCount>0">{{unReadMessageCount == 99 ? '99+' : unReadMessageCount}}</span>
+                                    <span  v-if="unReadMessageCount>0" :class="[unReadMessageCount < 10 ? 'circular':'ellipse']">{{unReadMessageCount == 99 ? '99+' : unReadMessageCount}}</span>
                                 </i>
                             </a>
                         </div>
@@ -51,37 +51,47 @@
                         <div class="user-main tabs">
                             <div class="tabs-left">
                                 <div class="item">
-                                    <a href="javascript:void(0);">
-                                        <i class="icon mIcon icon-1"><span v-if="confirmedCount>0">{{confirmedCount == 99 ? '99+' : confirmedCount}}</span> </i>
+                                    <a href="javascript:void(0);" @click="orderListPath(1)">
+                                        <i class="icon mIcon icon-1">
+                                            <span v-if="confirmedCount>0" :class="[confirmedCount < 10 ? 'circular':'ellipse']">{{confirmedCount == 99 ? '99+' : confirmedCount}}</span>
+                                        </i>
                                         <p>待确认</p>
                                     </a>
                                 </div>
                                 <div class="item">
-                                    <a href="javascript:void(0);">
-                                        <i class="icon mIcon icon-2"><span v-if="paymentCount>0">{{paymentCount == 99 ? '99+' : paymentCount}}</span></i>
+                                    <a href="javascript:void(0);" @click="orderListPath(2)">
+                                        <i class="icon mIcon icon-2">
+                                            <span v-if="paymentCount>0" :class="[paymentCount < 10 ? 'circular':'ellipse']">{{paymentCount == 99 ? '99+' : paymentCount}}</span>
+                                        </i>
                                         <p>待付款</p>
                                     </a>
                                 </div>
                                 <div class="item">
-                                    <a href="javascript:void(0);">
-                                        <i class="icon mIcon icon-3"><span v-if="waitShipmentsCount>0">{{waitShipmentsCount == 99 ? '99+' : waitShipmentsCount}}</span></i>
+                                    <a href="javascript:void(0);" @click="orderListPath(3)">
+                                        <i class="icon mIcon icon-3">
+                                            <span v-if="waitShipmentsCount>0" :class="[waitShipmentsCount < 10 ? 'circular':'ellipse']">{{waitShipmentsCount == 99 ? '99+' : waitShipmentsCount}}</span>
+                                        </i>
                                         <p>待发货</p>
                                     </a>
                                 </div>
                                 <div class="item">
-                                    <a href="javascript:void(0);">
-                                        <i class="icon mIcon icon-4"><span v-if="shipmentsCount>0">{{shipmentsCount == 99 ? '99+' : shipmentsCount}}</span></i>
+                                    <a href="javascript:void(0);" @click="orderListPath(4)">
+                                        <i class="icon mIcon icon-4">
+                                            <span v-if="shipmentsCount>0" :class="[shipmentsCount < 10 ? 'circular':'ellipse']">{{shipmentsCount == 99 ? '99+' : shipmentsCount}}</span>
+                                        </i>
                                         <p>已发货</p>
                                     </a>
                                 </div>
                                 <div class="item">
-                                    <a href="javascript:void(0);">
-                                        <i class="icon mIcon icon-5"><span v-if="salesReturnCount>0">{{salesReturnCount == 99 ? '99+' : salesReturnCount}}</span></i>
+                                    <a href="javascript:void(0);" @click="orderListPath(5)">
+                                        <i class="icon mIcon icon-5">
+                                            <span v-if="salesReturnCount>0" :class="[salesReturnCount < 10 ? 'circular':'ellipse']">{{salesReturnCount == 99 ? '99+' : salesReturnCount}}</span>
+                                        </i>
                                         <p>退货/款</p>
                                     </a>
                                 </div>
                             </div>
-                            <div class="tabs-right"><a href="">全部订单<span class="icon mIcon"></span></a></div>
+                            <div class="tabs-right"><a href="javascript:void(0);" @click="orderListPath(0)">全部订单<span class="icon mIcon"></span></a></div>
                         </div>
                     </div>
                 </div>

+ 34 - 28
src/main/resources/templates/user-center/order/list.html

@@ -4,49 +4,56 @@
 <head>
     <title>采美365网-中国美业全方位线上交易服务互动平台,做美业,上采美</title>
     <template th:replace="components/head-link"></template>
-    <link th:href="@{/css/user-center/orderlist.css(v=${version})}" rel="stylesheet" type="text/css">
+    <link th:href="@{/css/user-center/order/orderlist.css(v=${version})}" rel="stylesheet" type="text/css">
 </head>
 <body>
 <!-- 引用头部 -->
 <template th:replace="components/header"></template>
-
 <!-- 我的采美 -->
 <div id="dashboard">
     <div class="navLayout" th:object="${pageInfo}">
         <div class="crumbs">
             <span>我的交易</span>
             <span>&gt;</span>
-            <span>我的首页</span>
+            <span>我的订单</span>
         </div>
         <div class="wrap clear mf">
             <!--左侧面包屑-->
             <template th:replace="user-center/components/tableft"></template>
             <div class="right">
-                <div class="user-header">
-
-                </div>
-                <div class="user-content clear">
-                    <div class="section">
-                        <div class="user-main tabs">
-                            <div class="tabs-left">
-                                <div class="item">
-                                    <a href="javascript:void(0);"><i class="icon mIcon" :class=""><span>3</span></i><p>待确认</p></a>
-                                </div>
-                                <div class="item">
-                                    <a href="javascript:void(0);"><i class="icon mIcon" :class=""><span>3</span></i><p>待付款</p></a>
-                                </div>
-                                <div class="item">
-                                    <a href="javascript:void(0);"><i class="icon mIcon" :class=""><span>3</span></i><p>待发货</p></a>
-                                </div>
-                                <div class="item">
-                                    <a href="javascript:void(0);"><i class="icon mIcon" :class=""><span>3</span></i><p>已发货</p></a>
-                                </div>
-                                <div class="item">
-                                    <a href="javascript:void(0);"><i class="icon mIcon" :class=""><span>3</span></i><p>退货/款</p></a>
+                <div class="order-header">
+                    <div class="header-tp">
+                        <div class="header-tabs">
+                            <div class="tabs-item"  v-for="(item, index) in orderTabBar" :key="index" @click="changeOrderFn(item.state)" :class="orderTabBarIndex == index ? 'active':''">
+                                <a href="javascript: void(0);">{{item.text}}(<span>{{item.bages}}</span>)</a>
+                            </div>
+                        </div>
+                        <div class="header-ser">
+                            <a class="btn-server" href="/help/1019.html" target="_blank">联系客服</a>
+                        </div>
+                    </div>
+                    <div class="header-bt">
+                        <div class="header-search">
+                            <div class="search">
+                                <span class="label">订单编号:</span>
+                                <input type="text" placeholder="输入订单编号进行搜索" class="search-input">
+                            </div>
+                            <div class="search-time">
+                                <span class="label">下单时间:</span>
+                                <div class="search-main">
+                                    <input type="text" placeholder="选择下单时间段" class="search-input">
+                                    <span>至</span>
+                                    <input type="text" placeholder="选择下单时间段" class="search-input">
                                 </div>
                             </div>
-                            <div class="tabs-right"><a href="">全部订单<span class="icon mIcon"></span></a></div>
                         </div>
+                        <div class="header-button">
+                            <a class="btn-server" href="javascript: void(0);" target="_blank">搜索</a>
+                        </div>
+                    </div>
+                </div>
+                <div class="order-container clear">
+                    <div class="section">
                         <div class="user-main order">
                             <div class="order-title">
                                 <span class="bag">自主</span>
@@ -92,11 +99,10 @@
         </div>
     </div>
 </div>
-
 <!-- 引入底部 -->
 <template th:replace="components/footer"></template>
 <template th:replace="components/foot-link"></template>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/user.service.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/user-center/dashboard.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/order.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/user-center/order/list.js(v=${version})}"></script>
 </body>
 </html>