Browse Source

Merge branch 'developerB' of git.caimei365.com:chao/caimei-caimei365-www into developerB

Administrator 4 năm trước cách đây
mục cha
commit
3db713ef1a

+ 165 - 0
src/main/resources/static/css/shopping/confirm.css

@@ -0,0 +1,165 @@
+@charset "utf-8";
+li{list-style:none}
+/**
+ * PC端
+ */
+@media screen and (min-width:768px){
+    input[type="number"]{-moz-appearance:none;-webkit-appearance: none;}
+    input::-webkit-outer-spin-button,input::-webkit-inner-spin-button {-webkit-appearance:none;}
+    .loading{box-sizing:border-box;padding:200px 0;text-align:center}
+    .empty{box-sizing:border-box;padding:100px 0;text-align:center;color:#4A4F58;line-height:30px;font-size:16px}
+    .empty img{width:180px;height:180px}
+    .empty a{color:#E15616}
+    .pageTitle{height:57px;line-height:57px;padding-top:16px;width: 100%;box-sizing: border-box;padding: 0 16px;}
+    .pageTitle h1{color:#2D3036;font-size:16px;font-weight:bold;float:left}
+    .pageTitle h1 span{color:#627386;font-size:12px;font-weight:normal;}
+    .pageTitle .step{float:right;color:#999999;font-size:14px;height:44px;line-height:44px}
+    .pageTitle .step span{display:inline-block;height:20px;line-height:20px;vertical-align:middle;position:relative;}
+    .pageTitle .step span:before{font-style:normal;font-size:20px;vertical-align:text-top;margin-right:5px}
+    .pageTitle .step span:nth-of-type(1):before{content:'\2776'}
+    .pageTitle .step span:nth-of-type(2):before{content:'\2777'}
+    .pageTitle .step span:nth-of-type(3):before{content:'\2778'}
+    .pageTitle .step span:after{position:absolute;left:0;top:10px;content:'';width:50px;}
+    .pageTitle .step span:first-child{padding-left:0}
+    .pageTitle .step span:first-child:after{display:none}
+    .pageTitle .step span.on{color:#E15616}
+    .pageTitle .step label.line{width: 50px;height: 1px;background: #707070;display: inline-block; margin: 0px 10px}
+    .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 .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 .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}
+    .container .content .section.address-none .formLine select{box-sizing:border-box;width:162px;height:36px;line-height:34px;text-indent:1.2em;background-color:#FFF;border:1px solid #b8bfca;border-radius:2px}
+    .container .content .section.address-none .formLine textarea{width:100%;height:114px;box-sizing:border-box;border:solid 1px #b8bfca;padding:10px 16px;line-height:20px;resize: none;border-radius: 2px;outline: none;}
+    .container .content .section.address-none .label{width: 90px;float: left;}
+    .container .content .section.address-none .label.tex{height: 114px;}
+    .container .content .section.address-none .label p{height:auto;line-height:36px;font-size: 14px;text-align: right;}
+    .container .content .section.address-none .label p em{font-style:normal;color:#f94b4b;margin:0 5px}
+    .container .content .section.address-none .form-input{width: 496px;float: left;}
+    .container .content .section.address-none .address-sub{width: 456px; float: right;height: 100%;position: relative;box-sizing: border-box;padding: 98px 90px;}
+    .container .content .section.address-none .address-sub:before{content:'';width: 1px;height: 90px;border-left: 1px dashed #b8bfca;position: absolute;left: 0;top: 50%;margin-top: -45px;}
+    .container .content .section.address-none .address-sub .checked{width: 100%;height: 16px;line-height: 16px;float: left;cursor: pointer;}
+    .container .content .section.address-none .address-sub .checked .icon{width:16px;height: 16px;display: block;float: left;margin-right: 5px;}
+    .container .content .section.address-none .address-sub .checked .icon-weigouxuan:before{width:16px;height: 16px;background-position: -288px 0;}
+    .container .content .section.address-none .address-sub .checked .icon-gouxuan:before{width:16px;height: 16px;background-position: -262px 0;}
+    .container .content .section.address-none .address-sub .checked span{font-size: 14px;color:#1890f9;}
+    .container .content .section.address-none .address-sub .button{width: 100%;height: 36px;float: left;margin-top: 35px;}
+    .container .content .section.address-none .address-sub .btn{width: 128px;height: 34px;float: left;line-height: 34px;text-align: center;font-size: 14px;display: block;border: 1px solid #E15616;}
+    .container .content .section.address-none .address-sub .btn-confirm{background-color: #E15616;color: #ffffff;margin-right: 15px;}
+    .container .content .section.address-none .address-sub .btn-cancel{background-color: #FFE6DC;color: #E15616;}
+
+    .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-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 .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-sub{width: 320px; float: right;height: 100%;position: relative;box-sizing: border-box;padding:0 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;}
+    .container .content .section.address .address-sub .btn-confirm{background-color: #FFE6DC;color: #E15616;border-color: #E15616;}
+    /*  选择地址  */
+    .model-address-content{width: 100%;height: 100%;position: fixed;top: 0;left: 0;background-color: rgba(0,0,0,.4);}
+    .model-address-content .model-content{width: 650px;height: 593px;padding:0 0 16px 0;position: absolute;top: 0;left: 0;right:0;bottom:0;background-color:#FFFFFF;margin: auto;border-radius: 2px;box-sizing: border-box;}
+    .model-address-content .title{width: 100%;height: 42px;float: left;box-sizing: border-box;position: relative;padding: 0 16px;border-bottom: 1px solid #e2e7ef;}
+    .model-address-content .title p{font-size: 14px;line-height: 42px;text-align: left;color: #22272e;float: left;}
+    .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 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 .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.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;}
+    .model-address-content .button .btn{width: 128px;height: 34px;float: left;line-height: 34px;text-align: center;font-size: 14px;display: block;border: 1px solid #E15616;}
+    .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
+
+
+}
+
+/**
+* 移动端
+*/
+@media screen and (max-width:768px){
+    .loading{box-sizing:border-box;padding:20vw 0;text-align:center}
+    .empty{box-sizing:border-box;padding:15vw 0;text-align:center;color:#4A4F58;line-height:8vw;font-size:3.4vw}
+    .empty img{width:40vw;height:40vw}
+    .empty a{color:#E15616}
+    .pageTitle .step{width:100%;height:12.4vw;line-height:12.4vw;background:#FFF;color:#9AA5B5;font-size:3.1vw;text-align:center;}
+    .pageTitle .step span{display:inline-block;height:4.2vw;line-height:4.2vw;vertical-align:middle;position:relative;padding-left:6.4vw}
+    .pageTitle .step span:before{font-style:normal;font-size:5.2vw;vertical-align:text-top;margin-right:1vw}
+    .pageTitle .step span:nth-of-type(1):before{content:'\2776'}
+    .pageTitle .step span:nth-of-type(2):before{content:'\2777'}
+    .pageTitle .step span:nth-of-type(3):before{content:'\2778'}
+    .pageTitle .step span:after{position:absolute;left:0;top:2.05vw;content:'';width:5.4vw;border-top:1px solid #9AA5B5}
+    .pageTitle .step span:first-child{padding-left:0}
+    .pageTitle .step span:first-child:after{display:none}
+    .pageTitle .step span.on{color:#E15616}
+    .pageTitle h1{color:#2D3036;font-size:3.7vw;font-weight:bold;height:10vw;line-height:10vw;padding:0 3.3vw;}
+    .listWrap .supplierItem{width:100%;background:#FFF;color:#9aa5b5;font-size:3.4vw;margin-bottom:1.2vw;}
+    .listWrap .supplierItem.disable{background:#f1f0f5}
+    .listWrap .supplierItem em{font-style: normal}
+    .listWrap .supplierTit{border-bottom:1px solid #F7F7F7;height:7.4vw;line-height:7.4vw;padding:1.3vw 3.3vw;}
+    .listWrap .cartItem{padding:2.2vw 3.3vw;height:24vw;line-height:24vw;position:relative;}
+    .listWrap .supplierBtn{border-top:1px solid #F7F7F7;width:93vw;margin:0 auto;height:10.6vw;line-height:10.6vw;color:#22272e;font-size:3.4vw;text-align:right;}
+    .listWrap .supplierBtn em {color: #f55c5c;}
+    .listWrap .supplierItem .c0{float:left;width:9.6vw;text-align:center}
+    .listWrap .check{width:3.5vw;height:3.5vw;line-height:3.5vw;vertical-align:middle}
+    .listWrap .supplierItem .c1{float:left;width:24vw}
+    .listWrap .supplierItem .image{display:block;box-sizing:border-box;width:24vw;height:24vw;border:1px solid #F7F7F7}
+    .listWrap .supplierTit .img{width:7.4vw;height:7.4vw;border:1px solid #F7F7F7;margin-right:2vw}
+    .listWrap .supplierTit .name{color:#9aa5b5}
+    .listWrap .cartItem .c2,.listWrap .cartItem .c3,.listWrap .cartItem .c4,.listWrap .cartItem .c10{position:absolute;left:39vw;line-height:5vw}
+    .listWrap .cartItem .c2{top:2.2vw;height:10vw;width:58vw;}
+    .listWrap .cartItem .c2 .name{color:#22272e;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
+    .listWrap .cartItem .c3{top:14vw;height:5vw}
+    .listWrap .cartItem .c4{bottom:2.2vw;height:5vw}
+    .listWrap .cartItem .c5{position:absolute;right:3.3vw;bottom:2.2vw;height:6.4vw;line-height:6.4vw}
+    .listWrap .cartItem .c10{color:#f94b4b;top:16vw;height:5vw}
+    .listWrap .cartItem .number{display:inline-block;width:26.6vw;line-height:6.4vw;height:6.4vw;box-sizing:border-box;border:1px solid #FFE6DC;border-radius:2px;font-size:0;white-space:nowrap;text-align:center;overflow:hidden;vertical-align:top}
+    .listWrap .cartItem .number>em{display:inline-block;width:6.4vw;height:6.4vw;background:#FFE6DC;font-size:4vw;line-height:6vw;vertical-align:top}
+    .listWrap .cartItem .number input{width:13.5vw;border:none;line-height:6vw;vertical-align:top;text-align:center;color:#E15616;font-size:3.4vw}
+    .invalidTit{height:9vw;line-height:9vw;font-size:3.7vw;padding:0 3.3vw;}
+    .invalidTit .tit{color:#22272e;float:left}
+    .invalidTit .delAll{color:#e15616;float:right}
+    .invalidTit .tit em{font-style:normal;color:#e15616}
+    .summaryWrap{width:100%;background:#FFF;margin:1.4vw 0}
+    .summaryWrap .summary{width:93vw;margin:0 auto;font-size:3.4vw;padding-bottom:3.3vw}
+    .summaryWrap .summary em{font-style:normal}
+    .summaryWrap .summary .left{height:9.4vw;line-height:9.4vw}
+    .summaryWrap .summary .right{height:11.2vw;line-height:11.2vw}
+    .summaryWrap .summary .check{width:3.5vw;height:3.5vw;line-height:3.5vw;vertical-align:top;margin:3vw 3vw 0 3.3vw}
+    .summaryWrap .summary .delete{width:12vw;height:6vw;line-height:6vw;display:inline-block;text-align:center;color:#f55c5c}
+    .summaryWrap .summary .right .item{position:relative;text-align:right;margin-left:6.8vw}
+    .summaryWrap .summary .right .item em{color:#f55c5c}
+    .summaryWrap .summary .submit{display:inline-block;width:30.4vw;height:11.2vw;line-height:11.2vw;text-align:center;background-color:#e15616;border-radius:2px;color:#FFF}
+    .summaryWrap.fixed{position:fixed;bottom:0;left:0;margin:0;z-index:99999;box-shadow:20px 20px 102px rgba(0,0,0,0.1)}
+    .summaryWrap .summary .item .del{position:absolute;right:0;top:-4vw;cursor:pointer;height:6vw;font-size:3.1vw}
+    .summaryWrap .summary .item .del em{position:absolute;top:0;left:100%;height:5vw;white-space:nowrap;background:#ff4500;line-height:5vw;color:#FFF;padding:0 1vw;border-radius:2px}
+
+}
+

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

@@ -23,7 +23,9 @@ li{list-style:none}
     .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{width: 110px;height:78px;float: left;border: 1px solid #f5f5f5;border-radius: 2px;margin-right: 8px;position: relative;cursor: pointer;}
+    .user-header .header-ml .logo .logo-file{width: 110px;height: 78px;position: relative;outline: none;opacity: 0;position: absolute;top: 0;left: 0;cursor: pointer;}
+    .user-header .header-ml .logo .file{width: 110px;height: 78px;display:block;background: url("/img/account/icon-noneimg.png") center center no-repeat;}
     .user-header .header-ml .logo img{width: 110px;height:78px;display: block;border-radius: 2px;}
     .user-header .header-ml .account{float: left;box-sizing: border-box;padding: 5px 0;}
     .user-header .header-ml .account .name{width: 100%;height: 36px;float: left;margin-bottom: 10px;}
@@ -35,9 +37,10 @@ li{list-style:none}
     .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 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 a{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: 13px;color: #f94b4b;line-height: 20px;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: 10px;}
@@ -53,7 +56,11 @@ 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:before{width: 24px;height: 24px;background-position: -273px -370px;}
+    .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;}
+    .user-content .section .user-main .tabs-left .item a .icon.icon-4:before{width: 24px;height: 24px;background-position: -102px -516px;}
+    .user-content .section .user-main .tabs-left .item a .icon.icon-5:before{width: 24px;height: 24px;background-position: -136px -516px;}
     .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: 60px;font-size: 14px;color: #22272e;}
     .user-content .section .user-main .tabs-right a{display: block;float: right;padding-right: 16px;position: relative}

+ 66 - 0
src/main/resources/static/css/user-center/message.css

@@ -0,0 +1,66 @@
+@charset "utf-8";
+li{list-style:none}
+/**
+ * PC端
+ */
+@media screen and (min-width:768px){
+    .navLayout {min-height: 900px;opacity: 0;}
+    .navLayout.active {opacity: 1;}
+    .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}
+    .content{width: 100%;min-height: 370px;background-color: #FFFFFF;box-sizing: border-box;padding:0 20px 20px 20px;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);margin:0 0 10px 0;}
+    .content .title{width: 100%;height: 56px;border-bottom: solid 1px #e2e7ef;line-height: 56px;color: #22272e;font-size: 16px;}
+    .content .section .section-top{width: 100%;height: 54px;float: left;box-sizing: border-box;padding: 9px 0;border-bottom: solid 1px #e2e7ef;}
+    .content .section .section-top .cheacked{width: 100px;height: 36px;float: left;cursor: pointer;}
+    .content .section .section-top .cheacked .icon{width: 16px;height: 16px;display: block;float: left;padding: 10px 15px}
+    .content .section .section-top .cheacked .icon.icon-weigouxuan:before{width: 16px;height: 16px;background-position: -236px 0;}
+    .content .section .section-top .cheacked .icon.icon-gouxuan:before{width: 16px;height: 16px;background-position: -210px 0;}
+    .content .section .section-top .cheacked span{display: inline-block;line-height: 36px;font-size: 16px;color: #22272e;}
+    .content .section .section-top .button{width: 250px;height: 36px;float: right;}
+    .content .section .section-top .button .btn{width: 90px;height: 34px;float: right;margin-left: 16px;border-radius: 2px;background-color: #ffe6dc;line-height: 34px;text-align: center;font-size: 14px;color: #E15616;border: solid 1px #e15616;}
+    .content .section .section-content{width: 100%;height: auto;float: left;box-sizing: border-box;padding: 10px 0;}
+    .content .section .section-content .new-list{width: 100%;height: 36px;float: left;box-sizing: border-box;}
+    .content .section .section-content .new-list .text{width: 600px;line-height: 36px;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;word-break: break-all;float: left;}
+    .content .section .section-content .new-list .icon{width: 16px;height: 16px;display: block;float: left;padding: 10px 15px;line-height: 16px;cursor: pointer;}
+    .content .section .section-content .new-list .icon.icon-weigouxuan:before{width: 16px;height: 16px;background-position: -236px 0;}
+    .content .section .section-content .new-list .icon.icon-gouxuan:before{width: 16px;height: 16px;background-position: -210px 0;}
+    .content .section .section-content .new-list .text p{line-height: 36px;font-size: 14px;color: #627386;float: left;}
+    .content .section .section-content .new-list .time{line-height: 36px;font-size: 12px;color: #b8bfca;float: right;}
+}
+
+/**
+* 移动端
+*/
+@media screen and (max-width:768px){
+    .navLayout{background:#FFF;border-top:1px solid #F5F5F5;border-bottom:1px solid #F5F5F5;}
+    .navLayout.active {opacity: 1;}
+    .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}
+
+
+
+
+
+}
+

BIN
src/main/resources/static/img/base/icon.png


BIN
src/main/resources/static/img/base/shua.png


+ 9 - 3
src/main/resources/static/js/account/login.js

@@ -124,6 +124,8 @@ var loginPage = new Vue({
                 UserApi.PostLoginAccount(params,function(response){
                     _self.loginLoading = false;
                     if(response.code === 0){
+                        console.log(response.data);
+                        var _userIdentity = response.data.userIdentity;
                         _self.userData = {
                             account: response.data.account,
                             email: response.data.email,
@@ -141,13 +143,17 @@ var loginPage = new Vue({
                        _self.setStorages( _self.userData);
                         // 登录成功页面跳转
                         var beforePath = localStorage.getItem("loginBeforePath");
-                        if (beforePath) {
+                        if(_userIdentity == 4 || _userIdentity ==2){
+                            window.location.href = '/user/dashboard.html';
+                        }else if(_userIdentity == 3){
+                            window.location.href = '/supplier/dashboard.html';
+                        }else if (beforePath) {
                             window.location.href = beforePath;
-                        }else{
+                        }else {
                             window.location.href = '/index.html';
                         }
                     } else {// 登录失败
-                        alertInfo(response.msg);
+                        CAIMEI.Alert(response.msg,'确定',false);
                     }
                 });
             });

+ 1 - 0
src/main/resources/static/js/account/register-supplier.js

@@ -1,6 +1,7 @@
 var registerPage = new Vue({
     el: "#registerPage",
     data: {
+        loginLoading:false,
         showTabContentIndex:2,
         showSupplierConfirm:true,
         showClass:'',

+ 28 - 0
src/main/resources/static/js/common/serviceapi/order.service.js

@@ -4,6 +4,34 @@
  * auther ZHJY
  */
 var OrderApi = {
+        /* 查询用户地址列表 */
+        GetAddressList: function (params, callback) {
+            Http.AjaxService({ url:'/personalCenter/findAddress', type:'GET', data:params, json:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /* 添加,保存地址 */
+        AddSaveAddress: function (params, callback) {
+            Http.AjaxService({ url:'/personalCenter/saveAddress', type:'POST', data:params, json:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /* 确认订单 */
+        GetOrderConfirmInfo: function (params, callback) {
+            Http.AjaxService({ url:'/order/confirm', type:'GET', data:params, json:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /* 获取订单邮费信息 */
+        GetOrderPostage: function (params, callback) {
+            Http.AjaxService({ url:'/order/postage', type:'GET', 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})

+ 6 - 0
src/main/resources/static/js/common/serviceapi/user.service.js

@@ -52,6 +52,12 @@ var UserApi = {
                 callback(res);
             });
         },
+        UserPuploadAvatar : function(params,callback) {//机构个人中心头像更新
+            Http.AjaxService({ url:'/user/uploadAvatar ', type:'post', data:params, json:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
         SupplierRgister:function(params, callback){//供应商注册
             Http.AjaxService({url: '/supplier/register', type: 'post', data: params, json: false})
             .then(function (res) {

+ 342 - 24
src/main/resources/static/js/shopping/confirm.js

@@ -1,32 +1,192 @@
-var shoppingCart = new Vue({
-    el: "#shoppingCart",
+var shoppingConfirm = new Vue({
+    el: "#shoppingConfirm",
     data: {
         userId: 0,
         userIdentity: '',
         userToken: '',
-        type: '',
-        listData: [],
-        kindCount: 0,
-        totalCount: 0,
-        totalPrice: 0
+        optionData:'',
+        subType:'',//跳转类型
+        cartType:'',//提交订单类型
+        goodsList:[],//商品列表
+        isEmpty:false,//是否显示列表
+        allPrice:'',//订单总价格
+        allCount:'',//订单总数量
+        productKind:'',//商品种类
+        payAllPrice:'',//支付价格
+        surplusMoney:0.00,//显示勾选后的剩余抵扣
+        userMoney:0.00,	//显示可使用余额
+        deductMoney:0.00,//显示已使用的余额
+        productIds:'',//商品ID
+        productCount:'',//提交订单的商品数量
+        addressList:[],//收货地址
+        addressData:{},//初始化地址信息
+        isAddType:'',
+        addAddressData:{
+            addressID:'',
+            allAddress:'所在地区',
+            userID: '',			//用户id ,只在新增收货地址时传
+            shouHuoRen: '',		//收货人
+            mobile:'',			//收货人手机
+            townID:'',			//区ID
+            address: '',	//地址
+            defaultFlag:0,		//是否默认收货地址(0 不是默认,1 默认)
+        },//初始化地址信息
+        addressID:'',//地址ID
+        townID:'',//区ID
+        freightText:'',
+        freightMoney:'',
+        selectedFreight:'',//默认邮费
+        hanldFreePostFlag:'',//
+        hanldFreight:'',//
+        isRequest:false,
+        isFiexdClass:'float',
+        isDefaultFlag:false,
+        isShowAddress:false,
+        isShowInvoice:false,
+        isShowBalance:false,
+        isShwoAddModel:false,
+        isShowCascader:false,
+        isConDisabled:false,
+        isSubDisabled:false,
+        isCheckedBalabce:false,
+        isDefaultChecked:false,
+        isAddressListLength:false,
+        balanceDeductionFlag:2,
+        invoiceType:'1',
+        invoiceTitle:0,
+        goodRemark:[],
+        optionList:['到付'],
+        ProvinceList:[],
+        cityArray:[],
+        townArray:[],
+        currentTab:0,
+        choseAddressText:'',//选取的地址信息
+        freightData:'',//运费信息
+        invoiceData:{
+            id:'',
+            invoiceTitle:'',	 //单位名称
+            corporationTaxNum:'',//纳税人识别号
+            registeredAddress: '',//单位地址
+            registeredPhone:'',	 //注册电话
+            openBank:'',		//开户银行
+            bankAccountNo: ''  ,//银行账号
+            type:0
+        }, //初始化发票信息
+        orderInfo:[],//提交的商品信息
+        payInfo:{},	//订单信息
+        addTabList:[
+            {name:'省'},
+            {name:'区'},
+            {name:'市'}
+        ],
+        addressFrom: {
+            name:'',
+            province: '',
+            city: '',
+            town: ''
+        },
+        invoiceTypeList:[
+            {value:'1',name:'不开发票'},
+            {value:'2',name:'普通发票'},
+            {value:'3',name:'增值税发票'}
+        ],
+        invoiceTitleList:[
+            {value:'0',name:'个人'},
+            {value:'1',name:'公司'},
+        ],
+        peopleInvoiceData:{
+            invoiceTitle:'',   //单位名称
+            invoiceContent:'明细', //商品明细
+            corporationTaxNum:'',//纳税人识别号
+            invoiceTitleType:'0'//发票抬头类型 1企业 0个人
+        },
+        checkedAddressItemIndex:0,
     },
     computed: {
 
     },
     methods: {
-        getConfirmList: function (productIds, productCount) {
+        getAddressList:function(userID,pageSize){//获取收货地址
             var _self = this;
-            if(this.userId ===0){return;}
-            tokenAjax("get", "/order/confirm", {
-                userId: _self.userId,
-                count: productCount,
-                productIds: productIds
-            } ,function (r) {
-                if (r.code === 0 && r.data) {
-                    _self.listData = r.data.list;
+            OrderApi.GetAddressList({userID:userID,pageNum:1,pageSize:pageSize},function (response) {
+                if(response.code == 0){
+                    var data = response.data;
+                    if(data.results != ''){
+                        _self.addressList = [];
+                        _self.addressList = data.results;
+                        _self.addressData =  data.results[0];
+                        _self.addressID = data.results[0].addressID;
+                        _self.townID = data.results[0].townID;
+                        // _self.getFreightData();
+                        _self.isAddressListLength = false;
+                    }else{
+                        _self.isAddType == 'add';
+                        _self.isAddressListLength = true;
+                        _self.addressData = _self.addressData;
+                        _self.GetProvinceFn()
+                    }
+                }else {
+                    CAIMEI.Alert(response.msg, '确定', false);
+                }
+            })
+        },
+        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.getAddressList(_self.userId,20);
+                }else{
+                    CAIMEI.Alert(response.msg, '确定', false);
                 }
             });
         },
+        getFreightData :function(){//获取邮费信息
+            var _self = this;
+            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;
+                    _self.hanldFreePostFlag = response.data.freePostFlag;
+                    _self.hanldFreight = response.data.freight;
+                    switch(_self.freightData.freePostFlag){
+                        case 0:
+                            _self.freightText = '包邮';
+                            _self.freightData.freight  = 0;
+                            break;
+                        case 1:
+                            _self.freightText = '';
+                            _self.freightMoney =  _self.freightData.freight;
+                            var key = '到付';
+                            _self.optionList = [key];
+                            _self.optionList.unshift(_self.orderPriceToFixed(_self.freightMoney));
+                            _self.selectedFreight = _self.optionList[0];
+                            break;
+                        case -1:
+                            _self.freightText = '到付';
+                            _self.freightData.freight  = 0;
+                            break;
+                    };
+                    if(_self.hanldFreePostFlag == 1){
+                        _self.payAllPrice = _self.allPrice + response.data.freight;
+                        _self.attributePallPrice();
+                    }else{
+                        _self.payAllPrice = _self.allPrice;
+                        _self.attributePallPrice();
+                    }
+                }else{
+                    CAIMEI.Alert(response.msg, '确定', false);
+                }
+            })
+        },
         toggleThisLadder: function(event){
             var el = event.currentTarget;
             if($(el).hasClass("on")){
@@ -44,27 +204,185 @@ var shoppingCart = new Vue({
         },
         submitOrder: function(){
 
-        }
+        },
+        GetProvinceFn: function(){//获取全部省份
+            var _self = this;
+            PublicApi.GetProvince({},function(response){
+                if(response.code == 0){
+                    _self.ProvinceList =response.data;
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                }
+            })
+        },
+        ChangeProvince:function () {//选择省份
+            var _self = this;
+            _self.addressFrom.province = event.target.value;
+            if(_self.addressFrom.province==''){//省为请选择时市区初始化
+                _self.cityArray=[];
+                _self.townArray=[];
+                _self.addAddressData.townID=''
+            }else {
+                _self.ChangeGetcity();
+            }
+        },
+        ChangeGetcity:function(event){//加载市
+            var _self = this;
+            PublicApi.GetCity({ provinceId: _self.addressFrom.province },function(response){
+                if(response.code == 0 ){
+                    _self.cityArray = response.data;
+                    _self.addressFrom.city = event.target.value;
+                    if(_self.addressFrom.city==''){
+                        _self.townArray=[];
+                    }else {
+                        _self.ChangeGetcTown();
+                    }
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                }
+            })
+        },
+        ChangeGetcTown:function(event){//选择地区
+            var _self = this;
+            PublicApi.GetTown({ cityId: _self.addressFrom.city },function(response){
+                if(response.code == 0 ){
+                    _self.townArray = response.data;
+                    _self.addAddressData.townID = event.target.value;
+                    console.log(_self.addAddressData.townID)
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                }
+            })
+        },
+        settingDefaultFlag :function(){//添加&&编辑 保存 设置默认地址按钮
+            var _self = this;
+            _self.isDefaultFlag=! _self.isDefaultFlag;
+            if(_self.isDefaultFlag){
+                _self.addAddressData.defaultFlag = '1';
+            }else{
+                _self.addAddressData.defaultFlag = '0';
+            }
+        },
+        settingDefaultFlag :function(){//添加&&编辑 保存 设置默认地址按钮
+            var _self = this;
+            _self.isDefaultFlag=! _self.isDefaultFlag;
+            if(_self.isDefaultFlag){
+                _self.addAddressData.defaultFlag = '1';
+            }else{
+                _self.addAddressData.defaultFlag = '0';
+            }
+        },
+        addAddressFn :function(){//添加新的地址
+            var _self = this;
+            _self.addAddressData={
+                addressID:'',
+                allAddress:'',
+                userID: '',		//用户id ,只在新增收货地址时传
+                shouHuoRen: '',	//收货人
+                mobile:'',		//收货人手机
+                townID:'',		//区ID
+                address: '',	//地址
+                defaultFlag:0,	//是否默认收货地址(0 不是默认,1 默认)
+            };
+            _self.isAddType = 'add';
+            _self.isShwoAddModel = true;
+        },
+        editAddress :function(item){//编辑地址
+            var _self = this;
+            if(_self.defaultFlag =='1'){
+                _self.isDefaultChecked = true;
+            }else{
+                _self.isDefaultChecked = false;
+            }
+            _self.isAddType = 'edit';
+            _self.isShwoAddModel = true;
+            _self.addAddressData = item;
+            _self.addAddressData.allAddress=item.province+''+item.city+''+item.town;
+        },
+        ConfirmAddressFn :function(){//保存地址
+            var _self = this;
+            console.log( _self.isAddType);
+            if(_self.addAddressData.townID == ""){
+                CAIMEI.dialog('请选择所在地区');
+                return;
+            };
+            if(_self.addAddressData.address == ""){
+                CAIMEI.dialog('请填写详细地址');
+                return;
+            };
+            if(_self.addAddressData.shouHuoRen == ""){
+                CAIMEI.dialog('请输入收货人姓名');
+                return;
+            };
+            if(_self.addAddressData.mobile == ""){
+                CAIMEI.dialog('请输入收货人手机号');
+                return;
+            };
+            if( _self.isAddType == 'add'){
+                var params = {
+                        userID:_self.userId  ,		//用户id ,只在新增收货地址时传
+                        shouHuoRen:_self.addAddressData.shouHuoRen ,//收货人
+                        townID:_self.addAddressData.townID,			//区ID
+                        address:_self.addAddressData.address,//地址
+                        mobile:_self.addAddressData.mobile,			//手机
+                        defaultFlag:_self.addAddressData.defaultFlag//是否默认收货地址(0 不是默认,1 默认)
+                };
+                // console.log('ADD',params);
+            }else{
+                var params = {
+                        addressID:_self.addAddressData.addressID,//编辑保存地址ID
+                        userID:_self.userId  ,		//用户id ,只在新增收货地址时传
+                        shouHuoRen:_self.addAddressData.shouHuoRen ,//收货人
+                        townID:_self.addAddressData.townID,			//区ID
+                        address:_self.addAddressData.address,//地址
+                        mobile:_self.addAddressData.mobile,			//手机
+                        defaultFlag:_self.addAddressData.defaultFlag//是否默认收货地址(0 不是默认,1 默认)
+                };
+            }
+            _self.isConDisabled = true;
+            OrderApi.AddSaveAddress(params,function(response){
+                if(response.code == 0){
+                    CAIMEI.dialog('保存成功');
+                    _self.getAddressList(_self.userID,20);
+                    _self.isShwoAddModel = false;
+                    _self.isConDisabled = false;
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                }
+            });
+        },
+        CancelAddressFn:function(){
+            this.isAddressListLength = false;
+        },
+        ShowCheckedAddressFn :function(){//显示地址列表
+            this.isShowAddress = true;
+        },
+        HideCheckedAddressFn :function(){//显示地址列表
+            this.isShowAddress = false;
+        },
+        ShowAddAddressFn :function(){//显示地址列表
+            this.isAddressListLength = true;
+        },
     },
     created: function () {
-        this.type = getUrlParam("type") ? getUrlParam("type")*1 : "";
+        this.subType = getUrlParam("type") ? getUrlParam("type")*1 : "";
         if(globalUserData){
             this.userId = globalUserData.userId;
             this.userIdentity = globalUserData.identity;
             this.userToken = globalUserData.token;
-            // type:(1购物车提交[对应表cm_cart],2直接购买提交, 3协销下单)
-            if(this.type === 1) {
+            // subType:(1购物车提交[对应表cm_cart],2直接购买提交)
+            if(this.subType === 1) {
                 var productIds = window.localStorage.getItem("shoppingProductIds");
                 // 获取列表数据
-                this.getConfirmList(productIds, null);
-            }else if(this.type === 2){
+                this.getConfirmInfo(productIds, null);
+            }else if(this.subType === 2){
                 var productId = getUrlParam("id");
                 var count = getUrlParam("count");
                 if(productId && count) {
                     // 获取列表数据
-                    this.getConfirmList(productId, count);
+                    this.getConfirmInfo(productId, count);
                 }else{
-                    alertInfo("参数错误,请重新提交订单!");
+                    CAIMEI.Alert('参数错误,请重新提交订单!', '确定', false);
                 }
             }
         }

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

@@ -7,6 +7,7 @@ var helpSuggestion = new Vue({
         userId: 0,
         degree:'',
         userInfo:{},
+        formData:new FormData(),
         unReadMessageCount:'',//消息数
         confirmedCount:'',//待確認數量
         paymentCount:'',//待付款
@@ -38,6 +39,21 @@ var helpSuggestion = new Vue({
                 }
             })
         },
+        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();
+                    }
+                })
+            });
+        },
         showBadge:function(n){//处理标签
             var num ='';
             if(n>100){num = 99}else{num = n;}

+ 53 - 9
src/main/resources/static/js/user-center/message.js

@@ -6,15 +6,27 @@ var helpSuggestion = new Vue({
         isRequset:false,
         userId: 0,
         degree:'',
-        userInfo:{},
-        unReadMessageCount:'',//消息数
-        confirmedCount:'',//待確認數量
-        paymentCount:'',//待付款
-        waitShipmentsCount:'',//待发货
-        shipmentsCount:'',//已发货
-        salesReturnCount:'',//退货款
-        productList:[],//推荐商品
-        newsList:[],//新闻动态
+        isCheckedAll:false,
+        messagesList:[
+            {title:'您有一笔订单等待支付,快去订单列表进行支付吧^_^。',addTime:' 2020-09-01 16:42:29',isCheck:false},
+            {title:'您有一笔订单等待支付,快去订单列表进行支付吧^_^。',addTime:' 2020-09-01 16:42:29',isCheck:false},
+            {title:'您有一笔订单等待支付,快去订单列表进行支付吧^_^。',addTime:' 2020-09-01 16:42:29',isCheck:false},
+            {title:'您有一笔订单等待支付,快去订单列表进行支付吧^_^。',addTime:' 2020-09-01 16:42:29',isCheck:false},
+            {title:'您有一笔订单等待支付,快去订单列表进行支付吧^_^。',addTime:' 2020-09-01 16:42:29',isCheck:false},
+            {title:'您有一笔订单等待支付,快去订单列表进行支付吧^_^。',addTime:' 2020-09-01 16:42:29',isCheck:false},
+            {title:'您有一笔订单等待支付,快去订单列表进行支付吧^_^。',addTime:' 2020-09-01 16:42:29',isCheck:false},
+            {title:'您有一笔订单等待支付,快去订单列表进行支付吧^_^。',addTime:' 2020-09-01 16:42:29',isCheck:false},
+            {title:'您有一笔订单等待支付,快去订单列表进行支付吧^_^。',addTime:' 2020-09-01 16:42:29',isCheck:false},
+            {title:'您有一笔订单等待支付,快去订单列表进行支付吧^_^。',addTime:' 2020-09-01 16:42:29',isCheck:false},
+            {title:'您有一笔订单等待支付,快去订单列表进行支付吧^_^。',addTime:' 2020-09-01 16:42:29',isCheck:false},
+            {title:'您有一笔订单等待支付,快去订单列表进行支付吧^_^。',addTime:' 2020-09-01 16:42:29',isCheck:false},
+            {title:'您有一笔订单等待支付,快去订单列表进行支付吧^_^。',addTime:' 2020-09-01 16:42:29',isCheck:false},
+            {title:'您有一笔订单等待支付,快去订单列表进行支付吧^_^。',addTime:' 2020-09-01 16:42:29',isCheck:false},
+            {title:'您有一笔订单等待支付,快去订单列表进行支付吧^_^。',addTime:' 2020-09-01 16:42:29',isCheck:false},
+            {title:'您有一笔订单等待支付,快去订单列表进行支付吧^_^。',addTime:' 2020-09-01 16:42:29',isCheck:false},
+            {title:'您有一笔订单等待支付,快去订单列表进行支付吧^_^。',addTime:' 2020-09-01 16:42:29',isCheck:false},
+            {title:'您有一笔订单等待支付,快去订单列表进行支付吧^_^。',addTime:' 2020-09-01 16:42:29',isCheck:false}
+        ],//新闻动态
     },
     methods: {
         GetMyPcCenterInfo:function(){
@@ -37,6 +49,37 @@ var helpSuggestion = new Vue({
                     CAIMEI.Alert(response.msg, '确定', false);
                 }
             })
+        },
+        checkedAllFn :function(){
+            var _self = this;
+            _self.isCheckedAll = !_self.isCheckedAll;
+            _self.updateBothCheckBtn();
+        },
+        checkedItemFn :function(item){
+            var _self = this;
+            item.isCheck = !item.isCheck;
+            _self.updateCheckAllBtn();
+        },
+        updateBothCheckBtn:function() {// 全选勾选
+            var _self = this;
+            _self.messagesList.forEach(function(item){
+                item.isCheck = _self.isCheckedAll ;
+         })
+        },
+        updateCheckAllBtn:function() {// 全选勾选判断
+            var _self = this;
+            var goodsCheckedLength = 0,
+                messagesList = _self.messagesList;
+            _self.messagesList.forEach(function(item){
+                if(item.isCheck) { goodsCheckedLength++; }
+            });
+            _self.isCheckedAll = goodsCheckedLength === messagesList.length;
+        },
+        deleteMessageFn: function(){//删除消息
+
+        },
+        signMessageFn: function(){//标记为已读
+
         },
         showBadge:function(n){//处理标签
             var num ='';
@@ -46,6 +89,7 @@ var helpSuggestion = new Vue({
         toFixedFn:function(text){//处理小数点后两位数
             return Number(text).toFixed(2);
         },
+
     },
     mounted: function () {
         if(globalUserData){

+ 115 - 20
src/main/resources/templates/shopping/confirm.html

@@ -4,50 +4,145 @@
 <head>
     <title>采美365网-核对订单信息</title>
     <template th:replace="components/head-link"></template>
-    <link th:href="@{/css/shopping/cart.css(v=${version})}" rel="stylesheet" type="text/css">
+    <link th:href="@{/css/shopping/confirm.css(v=${version})}" rel="stylesheet" type="text/css">
 </head>
 <body>
 <!-- 引用头部 -->
 <template th:replace="components/header"></template>
 
-<!-- 购物车列表 -->
+<!-- 确认订单 -->
 <div id="shoppingConfirm">
     <!--列表-->
-    <div v-else class="wrap">
+    <div class="wrap">
         <div class="pageTitle">
             <div class="step">
-                <span>我的购物车</span>
-                 <label class="line"></label>
+                <span class="on">我的购物车</span>
+                <label class="line on"></label>
                 <span class="on">核对订单信息</span>
-                 <label class="line"></label>
+                <label class="line"></label>
                 <span>成功提交订单</span>
             </div>
-            <h1>核对订单信息</h1>
+            <h1>确认订单<span>(填写并核对订单信息)</span></h1>
         </div>
     </div>
+    <div class="container" :class="isRequest ? 'active' : ''" v-show="isRequest">
+        <div class="content">
+            <div class="title">收货人信息</div>
+            <div class="section address-none" v-if="isAddressListLength">
+                <div class="address-main clear">
+                    <div class="formLine">
+                        <div class="label"><p><em>*</em>联系地址:</p></div>
+                        <div class="form-input">
+                            <select name="provinceID" id="cProvince" @change="ChangeProvince">
+                                <option value="" >请选择</option>
+                                <option v-for="(item ,index) in ProvinceList" :key="index" :value='item.provinceID' >{{item.name}}</option>
+                            </select>
+                            <select name="cityID" id="cCity" @change="ChangeGetcity($event)" >
+                                <option value="" >请选择</option>
+                                <option v-for="(item ,index) in cityArray" :key="index" :value="item.cityID" >{{item.name}}</option>
+                            </select>
+                            <select name="townID" id="cTown" @change="ChangeGetcTown($event)">
+                                <option value="" >请选择</option>
+                                <option v-for="(item ,index) in townArray" :key="index" :value="item.townID"  >{{item.name}}</option>
+                            </select>
+                        </div>
+                    </div>
+                    <div class="formLine">
+                        <div class="label tex"></div>
+                        <div class="form-input">
+                            <textarea placeholder="建议您如实填写详细地址,例如:街道名称,门牌号码,楼层和房间号等信息"  v-model="addAddressData.address"></textarea>
+                        </div>
+                    </div>
+                    <div class="formLine">
+                        <div class="label"><p><em>*</em>收货人:</p></div>
+                        <div class="form-input">
+                            <input type="text" v-model.trim="addAddressData.shouHuoRen" placeholder="请输入收货人姓名" maxlength="10" >
+                        </div>
+                    </div>
+                    <div class="formLine">
+                        <div class="label"><p><em>*</em>联系方式:</p></div>
+                        <div class="form-input">
+                            <input type="text" v-model.trim="addAddressData.mobile" placeholder="请输入联系方式" maxlength="11" >
+                        </div>
+                    </div>
+                </div>
+                <div class="address-sub">
+                    <div class="checked" @click="settingDefaultFlag">
+                        <i class="icon mIcon" :class="isDefaultFlag?'icon-gouxuan':'icon-weigouxuan'"></i>
+                        <span>设为默认地址</span>
+                    </div>
+                    <div class="button">
+                        <a href="javascript:void(0);" class="btn btn-confirm" @click="ConfirmAddressFn">保存并使用</a>
+                        <a href="javascript:void(0);" class="btn btn-cancel" @click="CancelAddressFn">取消</a>
+                    </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="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="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>
+        <div class="content">
+            <div class="title">进货清单</div>
+            <div class="section">
 
-    <div class="summaryWrap">
-        <div class="summary">
-            <div class="left mfbt">
-                <div class="item">
-                    <input class="check" type="checkbox" @change="ckeckAll()" v-model="allChecked">
-                    <span>全选</span>
-                    <a class="delete" href="javascript:void(0);">删除</a>
+            </div>
+        </div>
+        <div class="content">
+            <div class="title">发票信息</div>
+            <div class="section">
+
+            </div>
+        </div>
+        <div class="content">
+            <div class="title">使用余额</div>
+            <div class="section">
+
+            </div>
+        </div>
+    </div>
+    <div class="model-address-content" v-if="isShowAddress">
+        <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>
-                <div class="item">商品种类:<em v-text="kindCount"></em></div>
-                <div class="item">商品数量:<em v-text="totalCount"></em></div>
             </div>
-            <div class="right mfbt">
-                <div class="item">总价:<em v-text="'¥'+toFloat(totalPrice)"></em></div>
-                <a class="submit" href="javascript:void(0);" @click="submitOrder()">去结算</a>
+            <div class="button">
+                <a class="btn btn-confirm" href="javascript:void(0)">保存并使用</a>
+                <a class="btn btn-cancel" href="javascript:void(0)" @click="HideCheckedAddressFn">取消</a>
             </div>
         </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/order.service.js(v=${version})}"></script>
 <script charset="utf-8" type="text/javascript" th:src="@{/js/shopping/confirm.js(v=${version})}"></script>
 </body>
 </html>

+ 16 - 10
src/main/resources/templates/user-center/dashboard.html

@@ -24,7 +24,11 @@
             <div class="right">
                 <div class="user-header">
                     <div class="header-ml">
-                        <div class="logo"><img :src="userInfo.image == null ? '' : userInfo.image" alt=""></div>
+                        <div class="logo">
+                            <input ref="clubUseLogo"  class="logo-file" type="file" accept="image/png,image/jpeg,image/gif,image/jpg"  @change="uploadUserPuploadAvatar">
+                            <i class="file" v-if="userInfo.image == null"></i>
+                            <img v-else :src="userInfo.image == null ? '' : userInfo.image" alt="">
+                        </div>
                         <div class="account">
                             <div class="name"><span>{{userInfo.name}}</span><a href="/" v-if="userInfo.userIdentity === 4">去升级会员机构</a></div>
                             <div class="msg"><span>资料完整度:<em class="red">{{degree}}</em></span><a href="/user/setting/information.html">立即完善</a></div>
@@ -32,9 +36,11 @@
                     </div>
                     <div class="header-mr">
                         <div class="message">
-                            <i class="icon mIcon">
-                                <a href="" v-if="unReadMessageCount>0">{{unReadMessageCount == 99 ? '99+' : unReadMessageCount}}</a>
-                            </i>
+                            <a href="/user/message/list.html">
+                                <i class="icon mIcon">
+                                    <span  v-if="unReadMessageCount>0">{{unReadMessageCount == 99 ? '99+' : unReadMessageCount}}</span>
+                                </i>
+                            </a>
                         </div>
                         <div class="money">余额: <span>{{toFixedFn(userInfo.ableUserMoney)}}</span> 元</div>
                     </div>
@@ -46,31 +52,31 @@
                             <div class="tabs-left">
                                 <div class="item">
                                     <a href="javascript:void(0);">
-                                        <i class="icon mIcon"><span v-if="confirmedCount>0">{{confirmedCount == 99 ? '99+' : confirmedCount}}</span> </i>
+                                        <i class="icon mIcon icon-1"><span v-if="confirmedCount>0">{{confirmedCount == 99 ? '99+' : confirmedCount}}</span> </i>
                                         <p>待确认</p>
                                     </a>
                                 </div>
                                 <div class="item">
                                     <a href="javascript:void(0);">
-                                        <i class="icon mIcon"><span v-if="paymentCount>0">{{paymentCount == 99 ? '99+' : paymentCount}}</span></i>
+                                        <i class="icon mIcon icon-2"><span v-if="paymentCount>0">{{paymentCount == 99 ? '99+' : paymentCount}}</span></i>
                                         <p>待付款</p>
                                     </a>
                                 </div>
                                 <div class="item">
                                     <a href="javascript:void(0);">
-                                        <i class="icon mIcon"><span v-if="waitShipmentsCount>0">{{waitShipmentsCount == 99 ? '99+' : waitShipmentsCount}}</span></i>
+                                        <i class="icon mIcon icon-3"><span v-if="waitShipmentsCount>0">{{waitShipmentsCount == 99 ? '99+' : waitShipmentsCount}}</span></i>
                                         <p>待发货</p>
                                     </a>
                                 </div>
                                 <div class="item">
                                     <a href="javascript:void(0);">
-                                        <i class="icon mIcon"><span v-if="shipmentsCount>0">{{shipmentsCount == 99 ? '99+' : shipmentsCount}}</span></i>
+                                        <i class="icon mIcon icon-4"><span v-if="shipmentsCount>0">{{shipmentsCount == 99 ? '99+' : shipmentsCount}}</span></i>
                                         <p>已发货</p>
                                     </a>
                                 </div>
                                 <div class="item">
                                     <a href="javascript:void(0);">
-                                        <i class="icon mIcon"><span v-if="salesReturnCount>0">{{salesReturnCount == 99 ? '99+' : salesReturnCount}}</span></i>
+                                        <i class="icon mIcon icon-5"><span v-if="salesReturnCount>0">{{salesReturnCount == 99 ? '99+' : salesReturnCount}}</span></i>
                                         <p>退货/款</p>
                                     </a>
                                 </div>
@@ -93,7 +99,7 @@
                     </div>
                 </div>
                 <div class="user-content">
-                    <div class="title">最新动态<a href="/info/center-3-1.html">全部动态<i class="icon mIcon"></i></a></div>
+                    <div class="title">最新动态<a href="/info/center-3-1.html" target="_blank">全部动态<i class="icon mIcon"></i></a></div>
                     <div class="section">
                         <div class="user-main news">
                             <a class="new-list" v-for="(item, index) in newsList" :key="index" :href="item.link" target="_blank">

+ 48 - 11
src/main/resources/templates/user-center/message/list.html

@@ -2,27 +2,64 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网-中国美业全方位线上交易服务互动平台,做美业,上采美</title>
+    <title>采美365网-消息列表-中国美业全方位线上交易服务互动平台,做美业,上采美</title>
     <template th:replace="components/head-link"></template>
-    <link th:if="${pageId==1026}" th:href="@{/css/base/form.css(v=${version})}" rel="stylesheet" type="text/css">
-    <link th:href="@{/css/supplier-center/dashboard.css(v=${version})}" rel="stylesheet" type="text/css">
-
+    <link th:href="@{/css/user-center/message.css(v=${version})}" rel="stylesheet" type="text/css">
 </head>
 <body>
 <!-- 引用头部 -->
 <template th:replace="components/header"></template>
 
-<!-- 我的采美 -->
-<div id="Message">
-    <div class="">
-
+<!-- 我的消息 -->
+<div id="dashboard">
+    <div class="navLayout" :class="isRequset ? 'active':''" v-if="isRequset">
+        <div class="crumbs">
+            <span>我的交易</span>
+            <span>&gt;</span>
+            <span>我的首页</span>
+            <span>&gt;</span>
+            <span>我的消息</span>
+        </div>
+        <div class="wrap clear mf">
+            <!--左侧面包屑-->
+            <template th:replace="user-center/components/tableft"></template>
+            <div class="right">
+                <div class="content clear">
+                    <div class="title">所有消息</div>
+                    <div class="section">
+                        <div class="section-top">
+                            <div class="cheacked" @click="checkedAllFn">
+                                <i class="icon mIcon" :class="isCheckedAll ? 'icon-gouxuan' : 'icon-weigouxuan'"></i>
+                                <span>全选</span>
+                            </div>
+                            <div class="button">
+                                <a href="javascript:void(0);" class="btn" @class="deleteMessageFn">删除</a>
+                                <a href="javascript:void(0);" class="btn" @class="signMessageFn">标为已读</a>
+                            </div>
+                        </div>
+                        <div class="section-content">
+                            <div class="new-list" v-for="(item, index) in messagesList" :key="index">
+                                <div class="text">
+                                    <i class="icon mIcon" :class="item.isCheck ? 'icon-gouxuan' : 'icon-weigouxuan'" @click="checkedItemFn(item)"></i>
+                                    <p>{{item.title}}</p>
+                                </div>
+                                <div class="time">{{item.addTime}}</div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--loading-->
+    <div v-else class="loading">
+        <img src="/img/base/loading.gif">
     </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/message.js(v=${version})}"></script>
 </body>
 </html>