소스 검색

供应商

Administrator 4 년 전
부모
커밋
7d025acbe3
21개의 변경된 파일1551개의 추가작업 그리고 174개의 파일을 삭제
  1. 28 36
      src/main/resources/static/css/supplier-center/message.css
  2. 90 0
      src/main/resources/static/css/supplier-center/operation/list.css
  3. 32 0
      src/main/resources/static/css/supplier-center/setting/password.css
  4. 33 0
      src/main/resources/static/css/supplier-center/setting/phone.css
  5. 142 0
      src/main/resources/static/css/supplier-center/shop/goods.css
  6. 19 1
      src/main/resources/static/js/common/serviceapi/supplier.service.js
  7. 20 21
      src/main/resources/static/js/supplier-center/logistics-add.js
  8. 1 0
      src/main/resources/static/js/supplier-center/logistics-detail.js
  9. 20 11
      src/main/resources/static/js/supplier-center/logistics.js
  10. 86 9
      src/main/resources/static/js/supplier-center/message.js
  11. 184 0
      src/main/resources/static/js/supplier-center/operation/list.js
  12. 223 0
      src/main/resources/static/js/supplier-center/setting/password.js
  13. 122 0
      src/main/resources/static/js/supplier-center/setting/phone.js
  14. 99 0
      src/main/resources/static/js/supplier-center/shop/goods.js
  15. 24 17
      src/main/resources/templates/supplier-center/message/list.html
  16. 94 8
      src/main/resources/templates/supplier-center/operation/list.html
  17. 34 29
      src/main/resources/templates/supplier-center/order/delivery-record.html
  18. 23 23
      src/main/resources/templates/supplier-center/order/logistics-add.html
  19. 113 8
      src/main/resources/templates/supplier-center/setting/password.html
  20. 52 8
      src/main/resources/templates/supplier-center/setting/phone.html
  21. 112 3
      src/main/resources/templates/supplier-center/shop/goods.html

+ 28 - 36
src/main/resources/static/css/supplier-center/message.css

@@ -3,42 +3,34 @@ 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;}
-    .crumbs span{color: #22272e;font-size: 16px}
-    .right{float: right;width: 80%;background: #fff;padding: 10px;}
-    .mymessage-tt{font-size: 16px;height: 56px;line-height: 56px;padding: 0 10px;color: #22272e;}
-    .mymessage-hd{height: 54px;line-height: 54px;border-bottom: solid 1px #e2e7ef; border-top: solid 1px #e2e7ef;padding-left: 10px}
-    .checkbox-wrap{float: left}
-    .mark-read{float: right}
-    .mark-read span{width: 90px;height: 36px;background-color: #ffe6dc;border-radius: 2px;border: solid 1px #e15616;
-        text-align: center; line-height: 36px; color: #e15616; margin-right: 15px;display: inline-block;cursor: pointer }
-    .checkbox-wrap span{margin-left: 10px}
-    .mymessage-bd{padding-left: 10px}
-    .mymessage-bd li{height: 40px;line-height: 40px;}
-    .xiaoxi{width: 75%;display: inline-block;margin-left: 10px;}
-    .checkbox-wrap{display: inline-block}
+@media screen and (min-width:768px){
+
+
+    .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) {
-#message{width: 100%;overflow: auto}
-    .crumbs span{color: #22272e;font-size: 3.4vw}
-    .right{background: #fff;padding: 2.7vw;}
-    .mymessage-tt{font-size: 3.4vw;height: 10vw;line-height: 10vw;padding: 0 2.7vw;color: #22272e;}
-    .mymessage-hd{height: 14.4vw;line-height: 14.4vw;border-bottom: solid .27vw #e2e7ef; border-top: solid .27vw #e2e7ef;padding-left: 2.7vw}
-    .checkbox-wrap{float: left}
-    .mark-read{float: right}
-    .mark-read span{width: 22.4vw;height: 9.6vw;background-color: #ffd8d8;border: solid .27vw #e15616;text-align: center;
-    line-height: 9.6vw;color: #f94b4b;margin-right: 2vw;display: inline-block;cursor: pointer;border-radius: 4.8vw }
-    .checkbox-wrap span{margin-left: 2.7vw}
-    .mymessage-bd{padding-left: 2.7vw}
-    .mymessage-bd li{line-height:5.3vw;padding-top: 1.5vw}
-    .xiaoxi{display: inline-block;margin-left: 2.7vw;color: #4a4f58;width: 90%;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
-    .mIcon.wrap_tittle:before {width: 6.7vw;height: 6.7vw;background-position: -50.7vw -51.5vw;position: absolute;top: 28vw;}
-    .mIcon.open:before { width: 10.6vw; height: 11.2vw;float: right;background-position: -48.8vw 2.7vw;}
-    .wrap_tittle { height: 10.6vw; line-height: 10.6vw; background: #fff;padding: 0 2.7vw;font-size: 3.4vw;color: #22272e;border-bottom: solid .27vw #e2e7ef;}
-    .mymessage-bd .time{ display: block; margin-left: 30px;color: #9aa5b5; font-size: 1.6vw;}
-    .checkbox-wrap{display: inline-block}
+/**
+* 移动端
+*/
+@media screen and (max-width:768px){
+
+
 }
+

+ 90 - 0
src/main/resources/static/css/supplier-center/operation/list.css

@@ -0,0 +1,90 @@
+@charset "utf-8";
+li{list-style:none}
+/**
+ * PC端
+ */
+@media screen and (min-width:768px){
+    .pageWrap{width: 100%;}
+    .navLayout {min-height: 410px;}
+    .crumbs{padding-left: 220px;padding-right: 20px;}
+    .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: 78px;box-sizing: border-box;padding: 20px;background-color: #FFF;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);}
+    .order-header .header-bt {width: 100%;height: 38px;float: left;}
+    .order-header .header-bt .header-search{width: 560px;height: 38px;float: left;}
+    .order-header .header-bt .search{height: 38px;float: left;margin-right: 15px;}
+    .order-header .header-bt .search .label{display: inline-block;float: left;height: 38px;line-height:38px;font-size: 12px;color: #627386;margin-right: 15px;}
+    .order-header .header-bt .search .search-input{width: 210px;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-serch{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;float: left;margin: 0 5px;}
+    .order-header .header-bt .header-button .btn-add{width: 128px;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;float: left;margin: 0 5px;}
+
+    .container{width: 100%;height:auto;box-sizing: border-box;margin-top: 16px;}
+    .container .empty{box-sizing:border-box;padding:100px 0;text-align:center;color:#4A4F58;line-height:30px;font-size:16px;background-color:#FFF;}
+    .container .empty img{width:180px;height:180px;}
+    .container .empty a{color:#E15616;}
+    .container .section{width: 100%;height:auto;padding-bottom: 16px;box-sizing: border-box;padding:0 16px 16px 16px;background-color: #FFFFFF;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);}
+    .container .section .title{width: 100%;height: 54px;border-bottom: 1px solid #e2e7ef;}
+    .container .section .title .td{height: 54px;font-size: 14px;color:#627386;float: left;line-height:54px;text-align: left;}
+    .container .section .title .td.td-1{width:10%;}
+    .container .section .title .td.td-2{width:12%;text-align: center;}
+    .container .section .title .td.td-3{width:10%;text-align: center;}
+    .container .section .title .td.td-4{width:9%;text-align: center;}
+    .container .section .title .td.td-5{width:9%;text-align: center;}
+    .container .section .title .td.td-6{width:12%;text-align: center;}
+    .container .section .title .td.td-7{width:11%;text-align: center;}
+    .container .section .title .td.td-8{width:11%;text-align: center;}
+    .container .section .title .td.td-9{width:16%;text-align: center;}
+    .container .section .content{width: 100%;height: auto;padding: 16px 0 0 0;}
+    .container .section .list{width: 100%;height: 64px;}
+    .container .section .list .td{height: 64px;font-size: 14px;color:#22272e;float: left;line-height:50px;text-align: left;box-sizing: border-box;padding: 7px 0;border-bottom: 1px solid #e2e7ef;}
+    .container .section .list .td p{line-height: 25px;width: 100%;float: left;}
+    .container .section .list .td.td-1{width:10%;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;}
+    .container .section .list .td.td-2{width:12%;text-align: center;}
+    .container .section .list .td.td-3{width:10%;text-align: center;}
+    .container .section .list .td.td-4{width:9%;text-align: center;}
+    .container .section .list .td.td-5{width:9%;text-align: center;}
+    .container .section .list .td.td-6{width:12%;text-align: center;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;}
+    .container .section .list .td.td-7{width:11%;text-align: center;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;line-height: 25px;}
+    .container .section .list .td.td-8{width:11%;text-align: center;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;line-height: 25px;}
+    .container .section .list .td.td-9{width:16%;text-align: center;}
+    .container .section .list .td.td-9{width:16%;text-align: center;}
+    .container .section .list .td.td-9 a{margin: 0 5px;}
+    .container .section .list .td.td-9 .upd{color: #1890f9;}
+    .container .section .list .td.td-9 .del{color: #f94b4b;}
+}
+
+/**
+* 移动端
+*/
+@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}
+
+
+
+
+
+}
+

+ 32 - 0
src/main/resources/static/css/supplier-center/setting/password.css

@@ -0,0 +1,32 @@
+@charset "utf-8";
+li{list-style:none}
+/**
+ *重置密码
+ * PC端
+ */
+@media screen and (min-width:768px){
+    body{background-color: #F5F5F5;}
+    footer .footTop{display:none;}
+    .navLayout{min-height: 705px;}
+    .signAccount{width:1184px;margin:20px auto;min-height: 458px;background-color: #FFFFFF;}
+    .signAccount .title{height:42px;line-height:42px;font-size:16px;color:#22272e;text-align:left;background-color: #F5F5F5;}
+    .forget-form{width:498px;margin:0 auto;padding: 20px 0;}
+    .right-header{width: 100%;height: 88px;box-sizing: border-box;float: left;padding:24px 316px;background-color: #FFF;}
+    .right-header .header-tabs{width: 168px;height: 38px;background-color: #f0f3f7;border-radius: 2px 0px 0px 2px;;line-height: 38px;font-size: 14px;text-align: center;color: #627386;float: left;cursor: pointer;}
+    .right-header .header-tabs.current{background-color: #e15616;color: #FFFFFF;}
+    .container{width: 100%;min-height:485px;box-sizing: border-box;padding: 16px 236px;background-color: #FFF;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);}
+
+}
+
+/**
+* 移动端
+*/
+@media screen and (max-width:768px){
+    body{width:100%;height:100%;background-color: #ffffff;}
+    footer{display:none}
+    .signAccount .title{height:8.6vw;line-height:8.6vw;font-size:3.4vw;color:#22272e;text-align:left;padding: 0 4vw;}
+    .forget-form{padding:0;}
+    .signAccount form{width:93.4vw;margin:0 auto;}
+    .subLine{margin-top:2vw;float: left;width: 100%;}
+
+}

+ 33 - 0
src/main/resources/static/css/supplier-center/setting/phone.css

@@ -0,0 +1,33 @@
+@charset "utf-8";
+li{list-style:none}
+/**
+ *找回密码
+ * PC端
+ */
+@media screen and (min-width:768px){
+    body{background-color: #F5F5F5;}
+    footer .footTop{display:none;}
+    .navLayout{min-height: 648px;}
+    .signAccount{width:1184px;margin:20px auto;min-height: 458px;background-color: #FFFFFF;}
+    .signAccount .title{height:42px;line-height:42px;font-size:16px;color:#22272e;text-align:left;background-color: #F5F5F5;}
+    .forget-form{width:498px;margin:0 auto;padding: 20px 0;}
+    .header{width: 100%;height: 76px;box-sizing: border-box;padding: 20px 0;background-color: #FFFFFF;}
+    .header .header-p{width: 100%;height: 36px;background-image: linear-gradient(270deg,rgba(255,255,255,0.1) 0%,rgba(255,86,11,0.1) 51%,rgba(255,255,255,0.1) 100%);line-height: 36px;font-size: 14px;color: #e15616;text-align: center;}
+    .container{width: 100%;min-height:510px;box-sizing: border-box;padding:0 236px;background-color: #FFF;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);}
+    .container .title{width: 100%;line-height: 36px;font-size: 14px;color: #22272E;text-align: center;}
+    .container .title span{color: #f94b4b;}
+
+}
+
+/**
+* 移动端
+*/
+@media screen and (max-width:768px){
+    body{width:100%;height:100%;background-color: #ffffff;}
+    footer{display:none}
+    .signAccount .title{height:8.6vw;line-height:8.6vw;font-size:3.4vw;color:#22272e;text-align:left;padding: 0 4vw;}
+    .forget-form{padding:0;}
+    .signAccount form{width:93.4vw;margin:0 auto;}
+    .subLine{margin-top:2vw;float: left;width: 100%;}
+
+}

+ 142 - 0
src/main/resources/static/css/supplier-center/shop/goods.css

@@ -0,0 +1,142 @@
+ @media screen and (min-width:768px) {
+  .crumbs{color: #22272e;font-size: 16px;}
+  .head-top>form{overflow: hidden;background: #fff;padding:20px;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07)}
+  form>div {float: left; height: 40px;font-size: 12px;color: #627386;line-height: 40px;margin-right: 15px}
+  .Buyer {width: 168px; height: 36px;background-color: #ffffff;border-radius: 2px;border: solid 1px #b8bfca;padding-left: 10px;cursor: pointer;}
+  .state {width: 168px;height: 36px;background-color: #ffffff;border-radius: 2px;border: solid 1px #b8bfca;padding-left: 10px;color: #627386;cursor: pointer;}
+  input::placeholder{color: #9aa5b5;font-size: 12px;}
+  textarea::placeholder{color: #9aa5b5;}
+  #newBtn div{height: 36px;border-radius: 2px;display: inline-block;text-align: center;margin-left: 10px;cursor: pointer}
+  #newBtn{float: right}
+  .query-btn{background-color: #e15616;color: #fff;width: 90px;border: 1px solid #e15616}
+  .addBrand{border: solid 1px #e15616;width: 128px;color: #e15616;}
+  .brand-list{padding:0 20px 30px 20px; background: #fff; margin-top: 10px;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);}
+  .brand-title li{list-style: none;display: inline-block;color: #627386;width: 11%;text-align: center}
+  .brand-title li:first-child{text-align: left}
+  .brand-title li:nth-child(3){width: 15%}
+  .brand-title li:nth-child(4){width: 30%}
+  .brand-title li:nth-child(5){width: 15%}
+  .brand-title li:last-child{text-align: right}
+  .brand-title{border-bottom: solid 1px #e2e7ef;line-height: 55px;height: 55px}
+  .tbody ul li{list-style: none;display: inline-block;width: 11%;text-align: center;line-height: 24px;overflow: hidden;text-overflow: ellipsis;vertical-align: middle;
+    white-space: nowrap;font-size: 12px;color: #22272e}
+  .tbody li:first-child{text-align: left}
+  .tbody li:nth-child(3){width: 15%}
+  .tbody li:nth-child(4){width: 30%}
+  .tbody li:nth-child(5){width: 15%}
+  .tbody li:last-child{width: 52px;height: 24px;background-color: #ffe6dc; border-radius: 2px;border: solid 1px #e15616;margin-left: 60px;color: #e15616;cursor: pointer}
+  .tbody ul{height: 100px;line-height: 100px;margin-bottom: 10px}
+  .brand-logo img{width: 80px;height: 80px}
+  .brand-name h3{font-size: 12px}
+  .brand-status .font-red{color: #f94b4b;}
+  .brand-status .font-blue{color: #1890f9;}
+  .brand-status .font-red{color: #f94b4b;}
+  .bg-brand{position: fixed;background: rgba(34,39,46, 0.3); top: 0;left: 0; width: 100%;height: 100%;z-index: 1000}
+  .add-brand-box{
+    width: 338px;
+    height: 350px;
+    background-color: #ffffff;
+    box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.16);
+    border-radius: 2px;
+    border: solid 1px #efefef;
+    position: absolute;
+    left: 0;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    margin: auto
+  }
+  .modal-header{
+    height: 42px;
+    line-height: 42px;
+    border: solid 1px #efefef;
+    background-color: #f8f8f8;
+    padding-left: 20px;
+    color: #333333
+  }
+  .close-modalForm{
+    text-align: center;
+    float: right;
+    width: 30px;
+    cursor: pointer
+  }
+  .brand-content{
+     padding: 10px 10px;
+     color: #22272e
+  }
+  .required{color: red}
+  .brand-name input{
+        width: 210px;
+      height: 36px;
+      background-color: #ffffff;
+      border-radius: 2px;
+      border: solid 1px #b8bfca;
+      padding-left: 10px
+  }
+  .img-box{
+    width: 56px;
+	height: 56px;
+	background-color: #ffffff;
+	border-radius: 2px;
+	border: solid 1px #b8bfca;
+	    display: inline-block
+  }
+  .img-box img{
+    width: 100%;
+    height: 100%;
+  }
+  .brand-img{
+    margin: 10px 0;
+  }
+  .add-pic{
+    width: 56px;
+    height: 56px;
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    transform: translate(-50%,-50%);
+    border-radius: 2px;
+    opacity: 0
+  }
+  .brand-content .label{
+    width: 81px;
+    text-align: right;
+    display: inline-block;
+  }
+  .font-color{
+    color: #e15616;
+  }
+  .tishiyu{font-size: 12px;text-align: right; margin-top: 5px}
+  .brand-description span{
+    vertical-align: top;
+  }
+  .miaoshu{
+        background-color: #ffffff;
+    width: 220px;
+    height: 78px;
+    border-radius: 2px;
+    border: 1px solid #EFEFEF;
+    padding: 5px;
+    resize: none
+  }
+   .box-btn{float: right}
+  .box-btn div{
+    display: inline-block;
+    width: 68px;
+	height: 32px;
+	line-height: 32px;
+	text-align: center;
+	background-color: #ffffff;
+	border-radius: 2px;
+	border: solid 1px #b8bfca;
+      margin-right: 10px;
+      color: #22272e;
+      cursor: pointer;
+  }
+  .box-btn .btn-cancel{
+    background-color: #e15616;
+    color: #fff;
+    border: 1px solid #e15616;
+  }
+  }
+

+ 19 - 1
src/main/resources/static/js/common/serviceapi/supplier.service.js

@@ -168,6 +168,24 @@ var SupplierApi = {
                 .then(function(res){
                     callback(res);
                 });
-        }
+        },
+        GetMyOperationList : function(params,callback) {//查询机构运营人员管理列表
+            Http.AjaxService({ url:'/operation/list', type:'get', data:params, json:true})
+            .then(function(res){
+                callback(res);
+            });
+        },
+         DeleteMyOperation : function(params,callback) {//删除单个运营人员
+            Http.AjaxService({ url:'/operation/delete', type:'POST', data:params, json:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+         UpdateInvitationCode : function(params,callback) {//机构更新运营人员邀请码
+            Http.AjaxService({ url:'/operation/updateInvitationCode', type:'POST', data:params, json:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
 
 };

+ 20 - 21
src/main/resources/static/js/supplier-center/logistics-add.js

@@ -38,14 +38,14 @@ var addlogistics = new Vue({
             _this.formData.append('file', file[0]);
             SupplierApi.uploadimg(_this.formData,function(response){
                _this.GoodsImagesList.push(response.data);
-               _this.params.remarkImage =_this.GoodsImagesList.toString()+'##';
+               _this.params.remarkImage =_this.GoodsImagesList.join('##').substring();
                 event.target.value = '';
             });
         },
          removeGoodsImagesFn: function(index){//删除商品图片
             var _this = this;
             _this.GoodsImagesList.splice(index,1);
-             _this.params.remarkImage =_this.GoodsImagesList.toString()+',';
+             _this.params.remarkImage =_this.GoodsImagesList.join('##').substring();
          },
          selshow:function(event,index){
             this.select = index;
@@ -77,13 +77,6 @@ var addlogistics = new Vue({
          },
          parameter:function(){//参数信息
            var _this = this;
-           // _this.params.info.shopOrderId = $('.pro-information li').attr('shopOrderID');
-           // $('.pro-information li').each(function(){//发货数
-           //      var productobj={};
-           //        productobj.orderProductId = $(this).attr('orderproductid');
-           //        productobj.num = $(this).find('.del-num').text();
-           //        _this.params.record.push(productobj)
-           //  });
             _this.logisticList.forEach(function (pros) {
                     var obj = {};
                     var Code = pros.value;
@@ -96,7 +89,13 @@ var addlogistics = new Vue({
                             logisticsCompanyName:yName,
                             number:logisNum
                         };
+                        if(obj.logisticsCompanyCode==""&&obj.logisticsCompanyName==""){
+                            CAIMEI.Alert('请选择快递公司','确定')
+                        }else if(obj.number==""){
+                            CAIMEI.Alert('请输入快递单号','确定')
+                        }else {
                          _this.params.logistics.push(obj);
+                        }
                      })
               })
          },
@@ -108,20 +107,18 @@ var addlogistics = new Vue({
          },
          turnBtn:function () {//提交发货
             var _this = this;
+            console.log(_this.params)
+            var shopOrderId = $('.pro-information li').attr('shopOrderID');
                 _this.parameter();
-                console.log(_this.params)
-                var params = JSON.stringify(_this.params);
-            SupplierApi.addLogisticsInfo({params:params},function (res) {
-                if(res.code == 0) {
-                setTimeout(function () {
-                        CAIMEI.dialog('发货成功')
-                    })
-                     window.location.href = '/supplier/order/delivery_record.html?shopOrderID='+_this.params.info.shopOrderId;
-                  }else {
-
-                  }
-             })
+                 var params = JSON.stringify(_this.params);
+                SupplierApi.addLogisticsInfo({params:params},function (res) {
+                    if(res.code == 0) {
+                        CAIMEI.dialog('发货成功');
+                        window.location.href = '/supplier/order/delivery_record.html?shopOrderID='+shopOrderId;
+                      }else {
 
+                      }
+                 })
          },
     },
     mounted:function () {
@@ -135,7 +132,9 @@ var addlogistics = new Vue({
             _self.logisticsBatch = res.data.logisticsBatch;
             _self.params.remark =_self.logisticsBatch.remark
             _self.GoodsImagesList =  _self.logisticsBatch.remarkImages;
+            _self.params.remarkImage = _self.GoodsImagesList.toString()+'##';
             _self.orderList = res.data.logisticsBatch.logisticsRecordList;
+            console.log( _self.params.remarkImage)
         }
       })
       SupplierApi.kdList(function (res) {

+ 1 - 0
src/main/resources/static/js/supplier-center/logistics-detail.js

@@ -1,3 +1,4 @@
+jqMultipleShow("click", ".navList", ".tab", ".con");
 var logisticsDetail  = new Vue({
     el:'#logisticsDetail',
     data:{

+ 20 - 11
src/main/resources/static/js/supplier-center/logistics.js

@@ -27,7 +27,7 @@ var logistics = new Vue({
                 image:'',
                 note:'',//备注
                 shopOrderId:'',//商品id
-            }
+            },
          },
          select:'',
          electShow:false,
@@ -40,14 +40,14 @@ var logistics = new Vue({
             _this.formData.append('file', file[0]);
             SupplierApi.uploadimg(_this.formData,function(response){
                _this.GoodsImagesList.push(response.data);
-               _this.params.info.image =_this.GoodsImagesList.toString()+'##';
+               _this.params.info.image =_this.GoodsImagesList.join('##').substring();
                 event.target.value = '';
             });
         },
          removeGoodsImagesFn: function(index){//删除商品图片
             var _this = this;
             _this.GoodsImagesList.splice(index,1);
-             _this.params.info.image =_this.GoodsImagesList.toString()+',';
+             _this.params.info.image =_this.GoodsImagesList.join('##').substring();
          },
          selshow:function(event,index){
             this.select = index;
@@ -79,13 +79,15 @@ var logistics = new Vue({
          },
          parameter:function(){//参数信息
            var _this = this;
-           _this.params.info.shopOrderId = $('.pro-information li').attr('shopOrderID');
-           $('.pro-information li').each(function(){//发货数
-                var productobj={};
+           var record=[];
+            $('.pro-information li').each(function(){//发货数
+                  var productobj={};
                   productobj.orderProductId = $(this).attr('orderproductid');
                   productobj.num = $(this).find('.del-num').text();
-                  _this.params.record.push(productobj)
+                    record.push(productobj)
             });
+             _this.params.record=record
+            _this.params.info.shopOrderId = $('.pro-information li').attr('shopOrderID');
             _this.logisticList.forEach(function (pros) {
                     var obj = {};
                     var Code = pros.value;
@@ -98,7 +100,13 @@ var logistics = new Vue({
                             logisticsCompanyName:yName,
                             number:logisNum
                         };
+                         if(obj.logisticsCompanyCode==""&&obj.logisticsCompanyName==""){
+                            CAIMEI.Alert('请选择快递公司','确定')
+                        }else if(obj.number==""){
+                            CAIMEI.Alert('请输入快递单号','确定')
+                        }else {
                          _this.params.logistics.push(obj);
+                        }
                      })
               })
          },
@@ -110,19 +118,19 @@ var logistics = new Vue({
          },
          turnBtn:function () {//提交发货
             var _this = this;
-                _this.parameter();
-                var params = JSON.stringify(_this.params);
+             _this.parameter();
+             console.log(_this.params)
+            var params = JSON.stringify(_this.params);
             SupplierApi.addLogistics({params:params},function (res) {
                 if(res.code == 0) {
                 setTimeout(function () {
                         CAIMEI.dialog('发货成功')
-                    })
+                    },1000)
                      window.location.href = '/supplier/order/delivery_record.html?shopOrderID='+_this.params.info.shopOrderId;
                   }else {
 
                   }
              })
-
          },
     },
     mounted:function () {
@@ -141,5 +149,6 @@ var logistics = new Vue({
         }
         _self.userInfo =JSON.parse(CAIMEI.Storage.getItem('userInfo'));
         _self.orderList = JSON.parse(CAIMEI.Storage.getItem('orderList'));
+
     }
 })

+ 86 - 9
src/main/resources/static/js/supplier-center/message.js

@@ -1,23 +1,100 @@
 jqMultipleShow("click", ".navList", ".tab", ".con");
-var message = new Vue({
-    el: "#message",
+var helpSuggestion = new Vue({
+    el: "#dashboard",
     data: {
         btnLoading: false,
         isRequset:false,
-        userId: 0,
+        shopID: 0,
         degree:'',
-        userInfo:{},
-        unReadMessageCount:'',//消息数
+        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: {
-        getMessageCount:function () {
+        GetMyPcCenterInfo:function(){
+            var _self = this;
+            SupplierApi.GetMyPcCenterInfo({shopId:_self.shopID},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);
+                }
+            })
+        },
+        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 ='';
+            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.getMessageCount();
+            this.shopID = globalUserData.shopId;
+            this.GetMyPcCenterInfo();
         }
     }
 });

+ 184 - 0
src/main/resources/static/js/supplier-center/operation/list.js

@@ -0,0 +1,184 @@
+jqMultipleShow("click", ".navList", ".tab", ".con");
+var operationPage = new Vue({
+    el: "#operationPage",
+    data: {
+        isRequset:true,
+        noMore: false,
+        userId: 0,
+        StatusList:[
+            {value:0,name:'所有'},
+            {value:1,name:'已提交'},
+            {value:2,name:'已对接'},
+            {value:3,name:'已评价'},
+            {value:4,name:'已取消'}
+        ],
+        listQuery:{
+            userID:0,
+            linkName : '',
+            mobile : '',
+            pageNum:1,
+            pageSize:10
+        },
+        listRecord: 0,
+        pageInput: '1',
+        operationList:[],
+        confirmedCount:'',//待確認數量
+        paymentCount:'',//待付款
+        waitShipmentsCount:'',//待发货
+        shipmentsCount:'',//已发货
+        salesReturnCount:'',//退货款
+    },
+    filters: {
+        stateExp:function (state){ //订单状态文字和颜色
+            var stateText = '',
+                stateTextObject={
+                    2:'已绑定',
+                    1:'未绑定'
+                };
+                Object.keys(stateTextObject).forEach(function(key){
+                    if(key == state){
+                    stateText = stateTextObject[key]
+                }
+             });
+            return stateText;
+        },
+        stateTextExp:function (state){ //订单状态文字和颜色
+            var stateText = '',
+                stateTextObject={
+                    1:'有效',
+                    2:'已使用',
+                    3:'已过期'
+                };
+                Object.keys(stateTextObject).forEach(function(key){
+                    if(key == state){
+                    stateText = stateTextObject[key]
+                }
+             });
+            return stateText;
+        }
+    },
+    computed: {
+        pageTotal: function () {
+            var total = Math.ceil(this.listRecord / this.listQuery.pageSize);
+            return total > 0 ? total : 1;
+        },
+        showPageBtn: function () {
+            var total = Math.ceil(this.listRecord / this.listQuery.pageSize);
+            total = total > 0 ? total : 1;
+            var index = this.listQuery.pageNum, arr = [];
+            if (total <= 6) {
+                for (var i = 1; i <= total; i++) {
+                    arr.push(i);
+                }
+                return arr;
+            }
+            if (index <= 3) return [1, 2, 3, 4, 5, 0, total];
+            if (index >= total - 2) return [1, 0, total - 4, total - 3, total - 2, total - 1, total];
+            return [1, 0, index - 2, index - 1, index, index + 1, index + 2, 0, total];
+        }
+    },
+    methods: {
+        toPagination: function (pageNum) {//点击切换分页
+            if (pageNum <= this.pageTotal) {
+                this.listQuery.pageNum = pageNum;
+                this.GetQueryListData();
+            }
+        },
+        checkNum: function () {//输入跳转分页
+            if (this.pageInput > this.pageTotal) {
+                this.pageInput = this.pageTotal;
+            } else if (this.pageInput < 1) {
+                this.pageInput = 1;
+            }
+        },
+        GetQueryListData:function(){//查询运营人员列表
+            var _self = this;
+            SupplierApi.GetMyOperationList(_self.listQuery,function (response) {
+                if(response.code == 0){
+                    var data = response.data;
+                    if(data.results && data.results.length>0) {
+                        _self.operationList = [];
+                        _self.operationList = data.results;
+                        _self.listRecord = data.totalRecord;
+                    }else{
+                        _self.operationList = [];
+                        _self.operationList = data.results;
+                    }
+                    _self.isRequset = false;
+                }else{
+                    CAIMEI.Alert(response.msg, '确定', false);
+                }
+            })
+        },
+        searchOperationFn:function(){//点击搜索
+            this.GetQueryListData();
+        },
+        UpdataOperationFn:function(data){//更新邀请码
+            var _self = this;
+            CAIMEI.Modal('确定更新邀请码吗?更新后将会短信通知该运营人员','取消','确定',function () {
+                SupplierApi.UpdateInvitationCode({id:data.id},function (response) {
+                    if(response.code == 0 ){ //删除成功
+                        CAIMEI.dialog(response.msg,true,function () {
+                            _self.GetQueryListData();
+                        });
+                    }else{
+                        CAIMEI.Alert(response.msg,'确定',false);
+                    }
+                })
+            });
+        },
+        DeleteOperationFn:function(data){//删除运营人员
+            var _self = this;
+            CAIMEI.Modal('确定删除运营人员吗?','取消','确定',function () {
+                SupplierApi.DeleteMyOperation({id:data.id},function (response) {
+                    if(response.code == 0 ){ //删除成功
+                        CAIMEI.dialog('删除成功',true,function () {
+                            _self.GetQueryListData();
+                        });
+                    }else{
+                        CAIMEI.Alert(response.msg,'确定',false);
+                    }
+                })
+            });
+        },
+        ColorFn: function(state){//设置邀请码状态亚瑟
+            var stateColor = '',
+                stateColorObject={
+                    1:'#1DEDC5',
+                    2:'#1D7DED',
+                    3:'#ED1D1D'
+                };
+            Object.keys(stateColorObject).forEach(function(key){
+                if(key == state){
+                    stateColor = stateColorObject[key]
+                }
+            });
+            return stateColor;
+        },
+        statusColorFn: function(state){//设置状态颜色
+            var stateColor = '',
+                stateColorObject={
+                    1:'#333333',
+                    2:'#13ce66'
+                };
+            Object.keys(stateColorObject).forEach(function(key){
+                if(key == state){
+                    stateColor = stateColorObject[key]
+                }
+            });
+            return stateColor;
+        },
+    },
+    mounted: function () {
+        if(globalUserData){
+            this.userId = globalUserData.userId;
+            this.listQuery.orderState = CAIMEI.getUrlParam('state');
+            this.listQuery.userId = this.userId;
+            this.GetQueryListData();
+        }
+        console.log(this.listQuery.orderState)
+        $('.navLayout').find('.navList').removeClass("on").find('.con').hide().find('a').removeClass("on");
+        $('.navLayout').find('.navList').eq(1).addClass("on").find('.con').show().find('a').eq(1).addClass("on");
+
+    }
+});

+ 223 - 0
src/main/resources/static/js/supplier-center/setting/password.js

@@ -0,0 +1,223 @@
+jqMultipleShow("click", ".navList", ".tab", ".con");
+var passwordPage = new Vue({
+    el: "#passwordPage",
+    data: {
+        title:'手机找回密码',
+        loginLoading: false,
+        tabCurrentIndex:1,
+        showClass:'',
+        mobilCount:0,
+        mobileCodeText:'获取验证码',
+        mobilTime:null,
+        isMobileDisabled:false,
+        emailCount:0,
+        emailCodeText:'获取验证码',
+        emailTime:null,
+        isEmailDisabled:false,
+        isCodeModel:false,
+        codeImagePath:'',
+        codeImageToken:'',
+        imageCode:'',
+        phonePwd: {
+            mobileOrEmail :'',
+            activateCode : '',
+            passWord : '',
+            confirmPwd : '',
+            status:1
+        },
+        emailPwd: {
+            mobileOrEmail :'',
+            activateCode : '',
+            passWord : '',
+            confirmPwd : '',
+            status:2
+        },
+        rule:{
+            name: '^[a-zA-Z\\u4e00-\\u9fa5]{2,}$',
+            phone: '^\\d{6,12}$',
+            code: '^\\d{6}$',
+            emailCode: '^\\d{4}$',
+            license: '^[a-zA-Z0-9_]{18}$',
+            email: '^(([^<>()\\[\\]\\\\.,;:\\s@&quot;]+(\\.[^<>()\\[\\]\\\\.,;:\\s@&quot;]+)*)|(&quot;.+&quot;))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$',
+            password: "^[^\\u4e00-\\u9fa5]{8,16}$"
+        }
+    },
+    computed: {
+
+    },
+    methods: {
+        findPhonePwd: function(){ //手机号找回密码
+            var _self = this;
+            var pass = verifyForm();
+            if (_self.loginLoading) { return false; }
+            if (!pass) {return false;}
+            if(_self.phonePwd.confirmPwd!=_self.phonePwd.passWord){
+                CAIMEI.dialog('两次密码输入不一致',false,function () {});
+                return;
+            }
+            _self.loginLoading = true;
+            UserApi.FindCompanyPwd(_self.phonePwd,function (response) {
+                if(response.code === 0){
+                    CAIMEI.dialog('重置密码成功!',true,function () {
+                        _self.loginLoading = false;
+                        CAIMEI.Storage.clear();
+                        window.location.href = '/login.html';
+                    });
+                } else {
+                    CAIMEI.Alert(response.msg,'确定',false);
+                    _self.loginLoading = false;
+                }
+            });
+        },
+        findEmailPwd: function(){ //邮箱找回密码
+            var _self = this;
+            var pass = verifyForm();
+            if (_self.loginLoading) { return false; }
+            if (!pass) {return false;}
+            if(_self.emailPwd.confirmPwd!=_self.emailPwd.passWord){
+                CAIMEI.dialog('两次密码输入不一致',false,function () {});
+                return;
+            }
+            _self.loginLoading = true;
+            UserApi.FindCompanyPwd(_self.emailPwd,function (response) {
+                if(response.code === 0){
+                    CAIMEI.dialog('重置密码成功!',true,function () {
+                        _self.loginLoading = false;
+                        CAIMEI.Storage.clear();
+                        window.location.href = '/login.html';
+                    });
+                } else {
+                    CAIMEI.Alert(response.msg,'确定',false);
+                    _self.loginLoading = false;
+                }
+            });
+        },
+        getMobileImage:function() {//获取图形验证码
+            var _self = this;
+            var pass = verifyCheack('.massageBtn');
+            if (_self.isMobileDisabled) { return false; }
+            this.$nextTick(function() {
+                if (!pass) {
+                    return false;
+                }
+                PublicApi.getImgVerifyCode({platformType: 0},function(response){
+                    if(response.code == 0){
+                        _self.imageCode = '';
+                        _self.codeImagePath = response.data.baseImage;
+                        _self.codeImageToken = response.data.token;
+                        _self.isCodeModel = true;
+                    }else{
+                        CAIMEI.Alert(response.msg,'确定',false);
+                    }
+                })
+            });
+        },
+        getMobileCodeFn:function(){//机构注册获取注册短信验证码
+            var _self = this;
+            var params = {
+                    mobile:_self.phonePwd.mobileOrEmail,
+                    imgCode:_self.imageCode,
+                    token:_self.codeImageToken,
+                    activateCodeType:1,
+                    platformType:0
+                };
+            _self.isMobileDisabled = true;
+            UserApi.getRegisterMobileCode(params,function (response) {
+                if(response.code == 0){
+                    _self.isCodeModel = false;
+                    CAIMEI.dialog('验证短信已发送',false,function () {});
+                    var TIME_COUNT = 60;
+                    if (!_self.mobilTime) {
+                        _self.mobilCount = TIME_COUNT;
+                        _self.isMobileDisabled = true;
+                        _self.mobilTime = setInterval(function(){
+                        if (_self.mobilCount > 1 && _self.mobilCount <= TIME_COUNT) {
+                            _self.mobilCount--;
+                            _self.mobileCodeText = _self.mobilCount +'s重新发送';
+                        } else {
+                            _self.isMobileDisabled = false;
+                            clearInterval(_self.mobilTime);
+                            _self.mobilTime = null;
+                            _self.mobileCodeText = '获取验证码';
+                        }
+                    },1000)
+                    }
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                    _self.isMobileDisabled = false;
+                    _self.isCodeModel = false;
+                }
+            })
+        },
+        getEmailCodeFn:function(){//找回密码获取邮箱验证码
+            var _self = this;
+            var pass = verifyCheack('.emailMsgBtn');
+            if (_self.isMobileDisabled) { return false; }
+            this.$nextTick(function() {
+                if (!pass) {return false; }
+                var params = {
+                        email: _self.emailPwd.mobileOrEmail,
+                        status:3
+                };
+                _self.isEmailDisabled = true;
+                PublicApi.getEmailSMScode(params, function (response) {
+                    if (response.code == 0) {
+                        CAIMEI.dialog('验证短信已发送', false, function () {
+                        });
+                        var TIME_COUNT = 60;
+                        if (!_self.emailTime) {
+                            _self.emailCount = TIME_COUNT;
+                            _self.isEmailDisabled = true;
+                            _self.emailTime = setInterval(function () {
+                                if (_self.emailCount > 1 && _self.emailCount <= TIME_COUNT) {
+                                    _self.emailCount--;
+                                    _self.emailCodeText = _self.emailCount + 's重新发送';
+                                } else {
+                                    _self.isEmailDisabled = false;
+                                    clearInterval(_self.emailTime);
+                                    _self.emailTime = null;
+                                    _self.emailCodeText = '获取验证码';
+                                }
+                            }, 1000)
+                        }
+                    } else {
+                        CAIMEI.Alert(response.msg, '确定', false);
+                        _self.isEmailDisabled = false;
+                    }
+                })
+            })
+        },
+        refreshCodeImage:function(){
+            this.getMobileImage()
+        },
+        closeCodeModel:function(){
+            this.isCodeModel = false;
+        },
+        showPassword: function(event) {//密码
+            var el = event.currentTarget;
+            var pwdEle = $(el).siblings('input');
+            if(pwdEle.attr('type') === 'password') {
+                $(el).addClass('on');
+                pwdEle.attr('type','text');
+            } else {
+                $(el).removeClass('on');
+                pwdEle.attr('type','password');
+            }
+        },
+        blurHandle: function(event) { // 失去焦点校验
+            var el = event.currentTarget;
+            verifyHandle(el);
+        },
+        checkedFn:function (index) {
+            this.tabCurrentIndex = index;
+        }
+    },
+    created: function () {
+
+    },
+    mounted: function () {
+        var _self = this;
+        $('.navLayout').find('.navList').removeClass("on").find('.con').hide().find('a').removeClass("on");
+        $('.navLayout').find('.navList').eq(2).addClass("on").find('.con').show().find('a').eq(0).addClass("on");
+    }
+});

+ 122 - 0
src/main/resources/static/js/supplier-center/setting/phone.js

@@ -0,0 +1,122 @@
+jqMultipleShow("click", ".navList", ".tab", ".con");
+var phonePage = new Vue({
+    el: "#phonePage",
+    data: {
+        loginLoading:false,
+        count: '',					//倒计时
+        newCount: '',				//倒计时
+        codeTime: null,
+        codeTimeNew: null,
+        mobileCodeText: '获取验证码',
+        newMobileCodeText: '获取验证码',
+        isMobileDisabled: false,	//手机验证码按钮控制
+        isNewMobileDisabled: false,	//手机验证码按钮控制
+        form:{
+            contractMobile2:'', //新联系人手机号
+            contractMobile:'',  //旧联系人手机号
+            mobileCode:'',      //原手机号验证码
+            newMobileCode:'',   //新手机号手机验证码
+            userID:0
+        },
+        rule:{
+            phone: '^\\d{6,12}$',
+            code: '^\\d{6}$',
+        }
+    },
+    computed: {
+
+    },
+    methods: {
+        bindMobileCheck:function(){
+            var _self = this;
+            var pass = verifyForm();
+            if (_self.loginLoading) { return false; }
+            if (!pass) {return false;}
+            _self.loginLoading = true;
+            PublicApi.clubChangeMobile(_self.form,function (response) {
+                if(response.code === 0){
+                    CAIMEI.dialog('修改成功',true,function () {
+                        _self.loginLoading = false;
+                        CAIMEI.Storage.clear();
+                        window.location.href = '/login.html';
+                    });
+                } else {
+                    CAIMEI.Alert(response.msg,'确定',false);
+                    _self.loginLoading = false;
+                }
+            });
+        },
+        getMobileCodeFn:function(){//获取旧手机号验证码
+            var _self = this;
+            _self.isMobileDisabled = true;
+            PublicApi.getClubMobileCode({ mobile : _self.form.contractMobile2 },function(response){
+                if(response.code == 0){
+                    CAIMEI.dialog('验证短信已发送',false,function () {});
+                    var TIME_COUNT = 60;
+                    if (!_self.mobilTime) {
+                            _self.count = TIME_COUNT;
+                            _self.isMobileDisabled = true;
+                            _self.codeTime = setInterval(function(){
+                                if (_self.count > 1 && _self.count <= TIME_COUNT) {
+                                    _self.count--;
+                                    _self.mobileCodeText = _self.count +'s重新发送';
+                                } else {
+                                    _self.isMobileDisabled = false;
+                                    clearInterval(_self.codeTime);
+                                    _self.codeTime = null;
+                                    _self.mobileCodeText = '获取验证码';
+                                }
+                            },1000)
+                        }
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                    _self.isMobileDisabled = false;
+                }
+            })
+        },
+        getNewMobileCodeFn:function(){//获取新手机号短信验证码
+            var _self = this;
+            _self.isNewMobileDisabled = true;
+            PublicApi.getClubMobileCode({ mobile : _self.form.contractMobile },function(response){
+                    if(response.code == 0){
+                        CAIMEI.dialog('验证短信已发送',false,function () {});
+                        var TIME_COUNT = 60;
+                        if (!_self.codeTimeNew) {
+                            _self.newCount = TIME_COUNT;
+                            _self.isNewMobileDisabled = true;
+                            _self.codeTimeNew = setInterval(function(){
+                                if (_self.newCount > 1 && _self.newCount <= TIME_COUNT) {
+                                    _self.newCount--;
+                                    _self.newMobileCodeText = _self.newCount +'s重新发送';
+                                } else {
+                                    _self.isNewMobileDisabled = false;
+                                    clearInterval(_self.codeTimeNew);
+                                    _self.codeTimeNew = null;
+                                    _self.newMobileCodeText = '获取验证码';
+                                }
+                            },1000)
+                        }
+                    }else{
+                        CAIMEI.Alert(response.msg,'确定',false);
+                        _self.isNewMobileDisabled = false;
+                    }
+                })
+        },
+        blurHandle: function(event) { // 失去焦点校验
+            var el = event.currentTarget;
+            verifyHandle(el);
+        }
+    },
+    created: function () {
+
+    },
+    mounted: function () {
+        var _self = this;
+        if(globalUserData){
+            _self.form.contractMobile2 = globalUserData.phone;
+            _self.form.userID = globalUserData.userId;
+        }
+        $('.navLayout').find('.navList').removeClass("on").find('.con').hide().find('a').removeClass("on");
+        $('.navLayout').find('.navList').eq(2).addClass("on").find('.con').show().find('a').eq(1).addClass("on");
+    }
+});

+ 99 - 0
src/main/resources/static/js/supplier-center/shop/goods.js

@@ -0,0 +1,99 @@
+jqMultipleShow("click", ".navList", ".tab", ".con");
+var Brandgoods =new Vue({
+    el:'#Brandgoods',
+    data:{
+      params:{
+             userID: '',
+             pageNum :1,
+             pageSize:10,
+             name:'',
+             status:''
+        },
+        brandobj:{
+            userID:'',
+            name:'',
+            logo:'',
+            description:''
+        },
+        brandlist:[],
+        pageInput: '1',
+        listRecord: 0,
+        bgflag:false,
+    },
+     computed: {
+        pageTotal: function () {
+            var total = Math.ceil(this.listRecord / this.params.pageSize);
+            return total > 0 ? total : 1;
+        },
+        showPageBtn: function () {
+            var total = Math.ceil(this.listRecord / this.params.pageSize);
+            total = total > 0 ? total : 1;
+            var index = this.params.pageNum, arr = [];
+            if (total <= 6) {
+                for (var i = 1; i <= total; i++) {
+                    arr.push(i);
+                }
+                return arr;
+            }
+            if (index <= 3) return [1, 2, 3, 4, 5, 0, total];
+            if (index >= total - 2) return [1, 0, total - 4, total - 3, total - 2, total - 1, total];
+            return [1, 0, index - 2, index - 1, index, index + 1, index + 2, 0, total];
+        }
+    },
+    methods:{
+        toPagination: function (pageNum) {
+            if (pageNum <= this.pageTotal) {
+                this.params.pageNum = pageNum;
+                this.BrandList(this.params);
+            }
+        },
+     checkNum: function () {
+        if (this.pageInput > this.pageTotal) {
+            this.pageInput = this.pageTotal;
+        } else if (this.pageInput < 1) {
+            this.pageInput = 1;
+        }
+    },
+      BrandList:function () {
+       var _this = this;
+        SupplierApi.brandList(_this.params,function (res) {
+            if(res.code==0){
+                 if(res.data.results && res.data.results.length>0){
+                     _this.brandlist=res.data.results;
+                     console.log(_this.brandlist)
+                     _this.listRecord = res.data.totalRecord;
+                 }else{
+                     _this.results = res.data.results;
+                     _this.listRecord = res.data.totalRecord;
+                 }
+            }
+        })
+      },
+      getstatus:function () { //状态
+        var _this = this;
+         _this.params.status=event.target.value;
+    },
+      queryBrand:function () { //查询
+        var _this = this;
+        _this.BrandList()
+      },
+    newBrand:function(){//提交新品牌
+        var _this = this;
+        _this.bgflag = true;
+        },
+    editBrand:function(){
+
+        },
+    closebg:function () {
+         var _this = this;
+            _this.bgflag = false;
+        }
+    },
+    mounted:function () {
+        var _self = this;
+        if(globalUserData){
+              _self.params.userID = globalUserData.userId;
+            }
+        _self.BrandList()
+    }
+})

+ 24 - 17
src/main/resources/templates/supplier-center/message/list.html

@@ -12,7 +12,7 @@
 <template th:replace="components/header"></template>
 
 <!-- 我的消息 -->
-<div id="message">
+<div id="dashboard">
     <div class="navLayout" v-cloak>
         <div v-if="isPC" class="crumbs">
             <span>我的采美</span>
@@ -23,24 +23,30 @@
             <!--左侧导航-->
             <template th:replace="supplier-center/components/tableft"></template>
             <div class="right">
-                <div class="mymessage-tt">所有信息</div>
-                 <div class="mymessage-hd">
-                    <div class="checkbox-wrap">
-                        <input type="checkbox" class="checkbox all" >
-                        <span>全选</span>
-                    </div>
-                    <div class="mark-read">
-                         <span >标为已读</span>
-                         <span>删除</span>
+                <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>
-                <ul class="mymessage-bd">
-                    <li >
-                        <div class="checkbox-wrap"><input type="checkbox" class="checkbox only" ></div>
-                        <div class="xiaoxi">科技合格的空间和该地块机会放寒假烦得很</div>
-                        <span class="time"> 2019-07-18 15:12:21</span>
-                    </li>
-                </ul>
             </div>
         </div>
     </div>
@@ -52,6 +58,7 @@
 <!-- 引入底部 -->
 <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/supplier.service.js(v=${version})}"></script>
 <script charset="utf-8" type="text/javascript" th:src="@{/js/supplier-center/message.js(v=${version})}"></script>
 </body>
 </html>

+ 94 - 8
src/main/resources/templates/supplier-center/operation/list.html

@@ -2,22 +2,108 @@
 <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:href="@{/css/supplier-center/operation/list.css(v=${version})}" rel="stylesheet" type="text/css">
 </head>
 <body>
 <!-- 引用头部 -->
 <template th:replace="components/header"></template>
-
-<!-- 我的采美 -->
-<div>
-
+<!-- 运营人员管理 -->
+<div id="operationPage" v-cloak>
+    <div class="navLayout" th:object="${pageInfo}">
+        <div class="crumbs">
+            <span>机构管理中心</span>
+            <span>&gt;</span>
+            <span>运营人员管理</span>
+        </div>
+        <div class="wrap clear">
+            <!--左侧面包屑-->
+            <template th:replace="supplier-center/components/tableft"></template>
+            <div class="right">
+                <div class="order-header">
+                    <div class="header-bt">
+                        <div class="header-search">
+                            <div class="search">
+                                <span class="label">姓名:</span>
+                                <input type="text" v-model="listQuery.linkName" placeholder="请输入运营人员姓名" class="search-input">
+                            </div>
+                            <div class="search">
+                                <span class="label">手机号:</span>
+                                <input type="text" v-model="listQuery.mobile" placeholder="请输入运营人员手机号" class="search-input">
+                            </div>
+                        </div>
+                        <div class="header-button">
+                            <a class="btn-serch" href="javascript: void(0);" @click="searchOperationFn">搜索</a>
+                        </div>
+                    </div>
+                </div>
+                <!--loading-->
+                <div v-if="isRequset" class="loading">
+                    <img src="/img/base/loading.gif">
+                </div>
+                <div class="container clear" v-else>
+                    <!--数据为空-->
+                    <div class="section" v-if="operationList.length > 0">
+                        <div class="title">
+                            <div class="td td-1">姓名</div>
+                            <div class="td td-2">手机号</div>
+                            <div class="td td-3">邀请码</div>
+                            <div class="td td-4">有效期</div>
+                            <div class="td td-5">状态</div>
+                            <div class="td td-6">微信昵称</div>
+                            <div class="td td-7">添加时间</div>
+                            <div class="td td-8">绑定时间</div>
+                            <div class="td td-9">操作</div>
+                        </div>
+                        <div class="content">
+                            <div class="list" v-for="(item, index) in operationList" :key="index">
+                                <div class="td td-1">{{item.linkName}}</div>
+                                <div class="td td-2">{{item.mobile}}</div>
+                                <div class="td td-3">
+                                    <p>{{item.invitationCode}}</p>
+                                    <p :style="{color: ColorFn(item.effectiveFlag)}">{{item.effectiveFlag | stateTextExp}}</p>
+                                </div>
+                                <div class="td td-4">{{item.effectiveDays > 0 ? item.effectiveDays+'天': '- -'}}</div>
+                                <div class="td td-5" :style="{color: statusColorFn(item.status)}">{{item.status | stateExp}}</div>
+                                <div class="td td-6">{{item.nickName}}</div>
+                                <div class="td td-7">{{item.addTime}}</div>
+                                <div class="td td-8">{{item.bindTime}}</div>
+                                <div class="td td-9">
+                                    <a class="upd" href="javascript: void(0);" v-if="item.status == 1" @click="UpdataOperationFn(item)">更新邀请码</a>
+                                    <a class="del" href="javascript: void(0);" @click="DeleteOperationFn(item)">删除</a>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div v-else class="empty">
+                        <img src="/img/common/empty.png">
+                        <div class="msg"><p>暂无数据</p></div>
+                    </div>
+                </div>
+                <!--分页-->
+                <div v-if="(!isPC) && noMore" class="noMore">---- 没有更多了 ----</div>
+                <div v-if="isPC && pageTotal>1" class="pageWrap clear">
+                    <a v-if="listQuery.pageNum>1" class="prev" @click="toPagination(listQuery.pageNum*1-1)" href="javascript:void(0);"></a>
+                    <template v-for="n in showPageBtn">
+                        <a v-if="n" :class="{'on':(n==listQuery.pageNum)}" @click="toPagination(n)" href="javascript:void(0);" v-text="n"></a>
+                        <span v-else>···</span>
+                    </template>
+                    <a v-if="listQuery.pageNum<pageTotal" class="next" @click="toPagination(listQuery.pageNum*1+1)" href="javascript:void(0);"></a>
+                    <span>共<b v-text="pageTotal>1?pageTotal:1"></b>页</span>
+                    <span>跳至</span>
+                    <input v-model="pageInput" @blur="checkNum()"/>
+                    <span>页</span>&nbsp;
+                    <a class="btn" href="javascript:void(0);" @click="toPagination(pageInput)">点击跳转</a>
+                </div>
+            </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/supplier.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/supplier-center/operation/list.js(v=${version})}"></script>
 </body>
 </html>

+ 34 - 29
src/main/resources/templates/supplier-center/order/delivery-record.html

@@ -26,9 +26,9 @@
         </div>
         <div class="wrap clear">
             <!--左侧面包屑-->
-<!--            <div v-show="open">-->
-                <template th:replace="supplier-center/components/tableft"></template>
-<!--            </div>-->
+            <!--            <div v-show="open">-->
+            <template th:replace="supplier-center/components/tableft"></template>
+            <!--            </div>-->
             <div class="right">
                 <div class="userinfo">
                     <p class="info">
@@ -44,11 +44,11 @@
                 </div>
                 <div class="record-product">
                     <div class="protitle">发货记录</div>
-                        <div class="no-delivery-record" v-if="isShow">
-                            <img src="/img/order/kon.png">
-                            <p>此订单还没有发货记录,快去<span>补充</span>他吧</p>
-                        </div>
-                    <div class="product"   v-for="r in results">
+                    <div class="no-delivery-record" v-if="isShow">
+                        <img src="/img/order/kon.png">
+                        <p>此订单还没有发货记录,快去<span>补充</span>他吧</p>
+                    </div>
+                    <div class="product" v-for="r in results">
                         <ul class="product-title">
                             <li>商品信息</li>
                             <li>购买数量</li>
@@ -83,31 +83,36 @@
                             </p>
                         </ul>
                         <div class="record-button">
-                            <button class="view-logistics" type="button" @click="seelogistic(r.id,r.shopOrderID)">查看物流</button>
-                            <button class="add-logistics" type="button" @click="addlogistic(r.id,r.shopOrderID)">添加物流</button>
-                            <button class="cancellation-logistics" type="button" v-if="r.mailer == 1" @click="Revoke(r.id,r.shopOrderID)">撤销发货</button>
+                            <button class="view-logistics" type="button" @click="seelogistic(r.id,r.shopOrderID)">查看物流
+                            </button>
+                            <button class="add-logistics" type="button" @click="addlogistic(r.id,r.shopOrderID)">添加物流
+                            </button>
+                            <button class="cancellation-logistics" type="button" v-if="r.mailer == 1"
+                                    @click="Revoke(r.id,r.shopOrderID)">撤销发货
+                            </button>
                         </div>
                     </div>
                 </div>
-            </div>
-            <div v-if="(!isPC) && noMore" class="noMore">---- 没有更多了 ----</div>
-            <div class="pageWrap clear" v-if="isPC && pageTotal>1">
-                <a v-if="params.pageNum>1" class="prev" @click="toPagination(params.pageNum*1-1)"
-                   href="javascript:void(0);"></a>
-                <template v-for="n in showPageBtn">
-                    <a v-if="n" :class="{'on':(n==params.pageNum)}" @click="toPagination(n)" href="javascript:void(0);"
-                       v-text="n"></a>
-                    <span v-else>···</span>
-                </template>
-                <a v-if="params.pageNum<pageTotal" class="next" @click="toPagination(params.pageNum*1+1)"
-                   href="javascript:void(0);"></a>
-                <span>共<b v-text="pageTotal>1?pageTotal:1"></b>页</span>
-                <span>跳至</span>
-                <input v-model="pageInput" @blur="checkNum()"/>
-                <span>页</span>&nbsp;
-                <a class="btn" href="javascript:void(0);" @click="toPagination(pageInput)">点击跳转</a>
-            </div>
 
+                <div v-if="(!isPC) && noMore" class="noMore">---- 没有更多了 ----</div>
+                <div class="pageWrap clear" v-if="isPC && pageTotal>=1">
+                    <a v-if="params.pageNum>1" class="prev" @click="toPagination(params.pageNum*1-1)"
+                       href="javascript:void(0);"></a>
+                    <template v-for="n in showPageBtn">
+                        <a v-if="n" :class="{'on':(n==params.pageNum)}" @click="toPagination(n)"
+                           href="javascript:void(0);"
+                           v-text="n"></a>
+                        <span v-else>···</span>
+                    </template>
+                    <a v-if="params.pageNum<pageTotal" class="next" @click="toPagination(params.pageNum*1+1)"
+                       href="javascript:void(0);"></a>
+                    <span>共<b v-text="pageTotal>1?pageTotal:1"></b>页</span>
+                    <span>跳至</span>
+                    <input v-model="pageInput" @blur="checkNum()"/>
+                    <span>页</span>&nbsp;
+                    <a class="btn" href="javascript:void(0);" @click="toPagination(pageInput)">点击跳转</a>
+                </div>
+            </div>
         </div>
     </div>
 </div>

+ 23 - 23
src/main/resources/templates/supplier-center/order/logistics-add.html

@@ -4,8 +4,8 @@
 <head>
     <title>采美365网-中国美业全方位线上交易服务互动平台,做美业,上采美</title>
     <template th:replace="components/head-link"></template>
-    <link th:href="@{/css/base/center.css(v=${version})}" rel="stylesheet" type="text/css">
-    <link th:href="@{/css/supplier-center/logistics.css(v=${version})}" rel="stylesheet" type="text/css">
+    <link rel="stylesheet" th:href="@{/css/base/center.css(v=${version})}" type="text/css">
+    <link rel="stylesheet" th:href="@{/css/supplier-center/logistics.css(v=${version})}" type="text/css">
 </head>
 <body>
 <!-- 引用头部 -->
@@ -30,7 +30,7 @@
                 <div class="userinfo">
                     <p class="info">
                         <span>买家信息</span>
-                        <button type="button" class="comback" @click="history.go(-1)">返回</button>
+                        <button @click="history.go(-1)" class="comback" type="button">返回</button>
                     </p>
                     <div class="user">
                         <p>买家名称:<span>{{userInfo.name}}</span></p>
@@ -52,7 +52,7 @@
                             <li>本次发货</li>
                         </ul>
                         <ul class="pro-information">
-                            <li v-for="order in orderList " :shopOrderID="order.shopOrderID" :orderProductId = 'order.orderProductID'>
+                            <li :orderProductId = 'order.orderProductID' :shopOrderID="order.shopOrderID" v-for="order in orderList ">
                                 <div class="product-img">
                                     <img :src="order.image"/>
                                     <h3>{{order.productName}}</h3>
@@ -67,24 +67,24 @@
                 </div>
                 <div class="add-logistics">
                     <div class="add-wrap">
-                        <div class="company-number" v-for="(item,index) in logisticList" :key="index">
+                        <div :key="index" class="company-number" v-for="(item,index) in logisticList">
                             <div class="logist-left">
                                 <i class="red icon">*</i>
                                 物流公司:
-                                <select name="" :id="'logistics'+ index" class="logistics-company-name company" @change="ChangeLogistics($event,item,index)">
+                                <select :id="'logistics'+ index" @change="ChangeLogistics($event,item,index)" class="logistics-company-name company" name="">
                                 <option value="0">请选择</option>
-                                    <option v-for="(kd,kdIndex) in kdlist" :key="kdIndex" :value="kd.value" :name='kd.label'>{{kd.label}}</option>
+                                    <option :key="kdIndex" :name='kd.label' :value="kd.value" v-for="(kd,kdIndex) in kdlist">{{kd.label}}</option>
                                 </select>
-                                <button class="add-company companyBtn" @click="addBtn()"v-if="index==0">+</button>
-                                <button class="add-company companyBtn" @click="subBtn(kd)" v-else>-</button>
+                                <button @click="addBtn()" class="add-company companyBtn"v-if="index==0">+</button>
+                                <button @click="subBtn(kd)" class="add-company companyBtn" v-else>-</button>
                             </div>
                             <div class="logist-right">
-                                <div v-for="(num,numIndex) in item.numList" :key="numIndex">
+                                <div :key="numIndex" v-for="(num,numIndex) in item.numList">
                                     <i class="red">*</i>
                                     物流编号:
-                                    <input type="text" v-model="num.number" class="logistics-order-number company" oninput="value=value.replace(/[^\d]/g,'')" placeholder="请输入物流编号">
-                                    <button class="add-number companyBtn" @click="addNum(item,numIndex)" v-if="numIndex==0">+</button>
-                                    <button class="add-number companyBtn" v-else @click="reduceBtn(item)">-</button>
+                                    <input class="logistics-order-number company" oninput="value=value.replace(/[^\d]/g,'')" placeholder="请输入物流编号" type="text" v-model="num.number">
+                                    <button @click="addNum(item,numIndex)" class="add-number companyBtn" v-if="numIndex==0">+</button>
+                                    <button @click="reduceBtn(item)" class="add-number companyBtn" v-else>-</button>
                                 </div>
                             </div>
                         </div>
@@ -93,16 +93,16 @@
                         <div class="release-from ">
                             <span class="red-color">&nbsp;图片备注:</span>
                             <div class="release-input" id="uploadGoodsImages">
-                                <div class="upload-file" v-for="(item, index) in GoodsImagesList" :key="index">
-                                    <img :data-original='item' :src="item" :data-image="item" alt="" class="upload-img">
-                                    <i class="icon mIcon del" @click="removeGoodsImagesFn(index)"></i>
+                                <div :key="index" class="upload-file" v-for="(item, index) in GoodsImagesList">
+                                    <img :data-image="item" :data-original='item' :src="item" alt="" class="upload-img">
+                                    <i @click="removeGoodsImagesFn(index)" class="icon mIcon del"></i>
                                 </div>
                                 <div class="upload-file" v-show="GoodsImagesList.length<5">
                                     <i class="icon mIcon add"></i>
                                     <p class="add-text">添加图片</p>
-                                    <input ref="goodsImages" type="file" name="file" value="" class="input-file"
-                                           accept="image/png,image/jpeg,image/gif,image/jpg"
-                                           @change="uploadGoodsImagesFn">
+                                    <input @change="uploadGoodsImagesFn" accept="image/png,image/jpeg,image/gif,image/jpg" class="input-file" name="file" ref="goodsImages"
+                                           type="file"
+                                           value="">
                                 </div>
                                 <div class="form-upload-tips">
                                     <i class="icon mIcon icon-wen"></i>
@@ -118,8 +118,8 @@
                     </div>
                     <div class="defineBtn">
                         <div>
-                            <button type="button" @click="turnBtn">确定</button>
-                            <button type="button" @click="history.go(-1)">取消</button>
+                            <button @click="turnBtn" type="button">确定</button>
+                            <button @click="history.go(-1)" type="button">取消</button>
                         </div>
                     </div>
                 </div>
@@ -131,7 +131,7 @@
     <!-- 引入底部 -->
     <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/supplier.service.js(v=${version})}"></script>
-    <script charset="utf-8" type="text/javascript" th:src="@{/js/supplier-center/logistics-add.js(v=${version})}"></script>
+    <script charset="utf-8" th:src="@{/js/common/serviceapi/supplier.service.js(v=${version})}" type="text/javascript"></script>
+    <script charset="utf-8" th:src="@{/js/supplier-center/logistics-add.js(v=${version})}" type="text/javascript"></script>
 </body>
 </html>

+ 113 - 8
src/main/resources/templates/supplier-center/setting/password.html

@@ -2,22 +2,127 @@
 <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:href="@{/css/base/form.css(v=${version})}" rel="stylesheet" type="text/css">
+    <link th:href="@{/css/base/center.css(v=${version})}" rel="stylesheet" type="text/css">
+    <link th:href="@{/css/user-center/setting/password.css(v=${version})}" rel="stylesheet" type="text/css">
 </head>
 <body>
 <!-- 引用头部 -->
 <template th:replace="components/header"></template>
-
-<!-- 我的采美 -->
-<div>
-
+<!-- 重置密码 -->
+<div id="passwordPage" v-cloak>
+    <div class="navLayout" th:object="${pageInfo}">
+        <div class="crumbs">
+            <span>账户设置</span>
+            <span>&gt;</span>
+            <span>重置密码</span>
+        </div>
+        <div class="wrap clear">
+            <!--左侧面包屑-->
+            <template th:replace="supplier-center/components/tableft"></template>
+            <div class="right">
+                <div class="right-header">
+                    <div class="header-tabs" :class="{ current: tabCurrentIndex === 1 }" @click="checkedFn(1)">使用手机修改</div>
+                    <div class="header-tabs" :class="{ current: tabCurrentIndex === 2 }" @click="checkedFn(2)">使用邮箱修改</div>
+                </div>
+                <div class="container clear">
+                    <div class="forget-form"  v-if="tabCurrentIndex == 1">
+                        <form>
+                            <div class="formLine" >
+                                <p><em>*</em>手机号:</p>
+                                <input  class="massageBtn"  type="text" v-model.trim="phonePwd.mobileOrEmail" placeholder="请输入手机号码" :rule="rule.phone" maxlength="11" @blur="blurHandle($event)" needverify>
+                                <i class="checked icon mIcon"></i>
+                                <span class="errTips icon mIcon" tips="请输入有效的手机号码"></span>
+                            </div>
+                            <div class="formLine code">
+                                <p><em>*</em>短信验证码:</p>
+                                <input type="text" v-model.trim="phonePwd.activateCode" autocomplete="off" placeholder="请输入短信验证码" :rule="rule.code"  maxlength="6" @blur="blurHandle($event)" needverify>
+                                <i class="checked icon mIcon"></i>
+                                <span class="errTips icon mIcon" tips="请输入有效短信验证码"></span>
+                                <a class="getCode" href="javascript:void(0);" @click="getMobileImage" :class="[isMobileDisabled  ? 'disabled' : '']">{{ mobileCodeText }}</a>
+                            </div>
+                            <div class="formLine">
+                                <p><em>*</em>新密码:</p>
+                                <input type="password" v-model.trim="phonePwd.passWord" autocomplete="new-password" placeholder="请输入新密码,为8-16位数字和字母组合" :rule="rule.password" maxlength="32" @blur="blurHandle($event)" needverify>
+                                <i class="checked icon mIcon"></i>
+                                <span class="errTips icon mIcon" tips="8-16位数字或字母或字符"></span>
+                                <i class="icon showPwd" @click="showPassword($event)"></i>
+                            </div>
+                            <div class="formLine">
+                                <p><em>*</em>确认密码:</p>
+                                <input type="password" v-model.trim="phonePwd.confirmPwd" autocomplete="new-password" placeholder="请再次确认新密码" :rule="rule.password" maxlength="32" @blur="blurHandle($event)" needverify>
+                                <i class="checked icon mIcon"></i>
+                                <span class="errTips icon mIcon" tips="8-16位数字或字母或字符"></span>
+                                <i class="icon showPwd" @click="showPassword($event)"></i>
+                            </div>
+                            <div class="subLine">
+                                <button class="btn" type="button" :class="loginLoading ? 'disabled':''"  @click="findPhonePwd()">提交</button>
+                            </div>
+                        </form>
+                    </div>
+                    <div class="forget-form"  v-if="tabCurrentIndex == 2">
+                        <form>
+                            <div class="formLine" >
+                                <p><em>*</em>邮箱:</p>
+                                <input  class="emailMsgBtn"  type="text" v-model.trim="emailPwd.mobileOrEmail" placeholder="请输入邮箱" :rule="rule.email" maxlength="30" @blur="blurHandle($event)" needverify>
+                                <i class="checked icon mIcon"></i>
+                                <span class="errTips icon mIcon" tips="请输入有效的邮箱地址"></span>
+                            </div>
+                            <div class="formLine code">
+                                <p><em>*</em>邮箱验证码:</p>
+                                <input type="text" v-model.trim="emailPwd.activateCode" autocomplete="off" placeholder="请输入短信验证码" :rule="rule.emailCode"  maxlength="6" @blur="blurHandle($event)" needverify>
+                                <i class="checked icon mIcon"></i>
+                                <span class="errTips icon mIcon" tips="请输入有效短信验证码"></span>
+                                <a class="getCode" href="javascript:void(0);" @click="getEmailCodeFn" :class="[isEmailDisabled  ? 'disabled' : '']">{{ emailCodeText }}</a>
+                            </div>
+                            <div class="formLine">
+                                <p><em>*</em>登录密码:</p>
+                                <input type="password" v-model.trim="emailPwd.passWord" autocomplete="new-password" placeholder="请输入新密码,为8-16位数字和字母组合" :rule="rule.password" maxlength="32" @blur="blurHandle($event)" needverify>
+                                <i class="checked icon mIcon"></i>
+                                <span class="errTips icon mIcon" tips="8-16位数字或字母或字符"></span>
+                                <i class="icon showPwd" @click="showPassword($event)"></i>
+                            </div>
+                            <div class="formLine">
+                                <p><em>*</em>确认密码:</p>
+                                <input type="password" v-model.trim="emailPwd.confirmPwd" autocomplete="new-password" placeholder="请再次确认新密码" :rule="rule.password" maxlength="32" @blur="blurHandle($event)" needverify>
+                                <i class="checked icon mIcon"></i>
+                                <span class="errTips icon mIcon" tips="8-16位数字或字母或字符"></span>
+                                <i class="icon showPwd" @click="showPassword($event)"></i>
+                            </div>
+                            <div class="subLine">
+                                <button class="btn" type="button" :class="loginLoading ? 'disabled':''"  @click="findEmailPwd()">提交</button>
+                            </div>
+                        </form>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="content-model"  :class="isCodeModel ? 'active' : ''">
+            <div class="model-main">
+                <div class="model-title"><p>获取短信验证码</p><i class="icon mIcon icon-close"  @click="closeCodeModel"></i></div>
+                <div class="model-content">
+                    <div class="model-form">
+                        <input class="input" type="text" placeholder="请输入图形验证码" v-model="imageCode" maxlength="4">
+                        <div class="image"><img :src="codeImagePath" alt=""></div>
+                        <div class="refresh" @click="refreshCodeImage">
+                            <i class="icon mIcon"></i>
+                            <span>刷新</span>
+                        </div>
+                    </div>
+                    <div class="model-button">
+                        <div class="button"  @click="getMobileCodeFn">获取短信验证码</div>
+                    </div>
+                </div>
+            </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/user.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/user-center/setting/password.js(v=${version})}"></script>
 </body>
 </html>

+ 52 - 8
src/main/resources/templates/supplier-center/setting/phone.html

@@ -2,22 +2,66 @@
 <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:href="@{/css/base/form.css(v=${version})}" rel="stylesheet" type="text/css">
+    <link th:href="@{/css/base/center.css(v=${version})}" rel="stylesheet" type="text/css">
+    <link th:href="@{/css/supplier-center/setting/phone.css(v=${version})}" rel="stylesheet" type="text/css">
 </head>
 <body>
 <!-- 引用头部 -->
 <template th:replace="components/header"></template>
-
-<!-- 我的采美 -->
-<div>
-
+<!-- 修改资料 -->
+<div id="phonePage" v-cloak>
+    <div class="navLayout" th:object="${pageInfo}">
+        <div class="crumbs">
+            <span>账户设置</span>
+            <span>&gt;</span>
+            <span>更换手机号</span>
+        </div>
+        <div class="wrap clear">
+            <!--左侧面包屑-->
+            <template th:replace="supplier-center/components/tableft"></template>
+            <div class="right">
+                <div class="header">
+                    <div class="header-p">本操作更换的是机构联系人的手机号,不是运营人员的手机号!</div>
+                </div>
+                <div class="container clear">
+                    <div class="title"><span>*</span>原手机号:{{form.contractMobile2}}</div>
+                    <form>
+                        <div class="formLine code">
+                            <p><em>*</em>原手机号验证码:</p>
+                            <input type="text" v-model.trim="form.mobileCode" autocomplete="off" placeholder="请输入原手机号验证码" :rule="rule.code"  maxlength="6" @blur="blurHandle($event)" needverify>
+                            <i class="checked icon mIcon"></i>
+                            <span class="errTips icon mIcon" tips="请输入原手机号验证码"></span>
+                            <a class="getCode" href="javascript:void(0);" @click="getMobileCodeFn" :class="[isMobileDisabled  ? 'disabled' : '']">{{ mobileCodeText }}</a>
+                        </div>
+                        <div class="formLine" >
+                            <p><em>*</em>新手机号:</p>
+                            <input  class="massageBtn"  type="text" v-model.trim="form.contractMobile" placeholder="请输入新手机号码" :rule="rule.phone" maxlength="11" @blur="blurHandle($event)" needverify>
+                            <i class="checked icon mIcon"></i>
+                            <span class="errTips icon mIcon" tips="请输入新手机号码"></span>
+                        </div>
+                        <div class="formLine code">
+                            <p><em>*</em>新手机号验证码:</p>
+                            <input type="text" v-model.trim="form.newMobileCode" autocomplete="off" placeholder="请输入新手机号验证码" :rule="rule.code"  maxlength="6" @blur="blurHandle($event)" needverify>
+                            <i class="checked icon mIcon"></i>
+                            <span class="errTips icon mIcon" tips="请输入新手机号验证码"></span>
+                            <a class="getCode" href="javascript:void(0);" @click="getNewMobileCodeFn" :class="[isNewMobileDisabled  ? 'disabled' : '']">{{ newMobileCodeText }}</a>
+                        </div>
+                        <div class="subLine">
+                            <button class="btn" type="button" :class="loginLoading ? 'disabled':''"  @click="bindMobileCheck()">确认更换</button>
+                        </div>
+                    </form>
+                </div>
+            </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/supplier.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/supplier-center/setting/phone.js(v=${version})}"></script>
 </body>
 </html>

+ 112 - 3
src/main/resources/templates/supplier-center/shop/goods.html

@@ -4,20 +4,129 @@
 <head>
     <title>采美365网-中国美业全方位线上交易服务互动平台,做美业,上采美</title>
     <template th:replace="components/head-link"></template>
-
+    <link th:href="@{/css/base/center.css(v=${version})}" rel="stylesheet" type="text/css">
+    <link th:href="@{/css/supplier-center/shop/goods.css(v=${version})}" rel="stylesheet" type="text/css">
 </head>
 <body>
 <!-- 引用头部 -->
 <template th:replace="components/header"></template>
     <h1></h1>
 <!-- 我的采美 -->
-<div>
+<div id="Brandgoods">
+    <div class="navLayout" >
+        <div class="crumbs">
+            <span>我的店铺</span>
+            <span>&gt;</span>
+            <span>品牌管理</span>
+        </div>
+        <div class="wrap clear">
+            <!--左侧面包屑-->
+            <template th:replace="supplier-center/components/tableft"></template>
+            <div class="right">
+                <div class="head-top">
+                    <form action="">
+                        <div class='order-border'><span>品牌名称:</span><input type="text" id="name-buyer" v-model="params.name" class="Buyer" placeholder="请输入买家名称"> </div>
+                        <div>
+                            状态:
+                            <select name="" id="settlement-status" class="state" @change="getstatus($event)">
+                                <option value="">全部</option>
+                                <option value="0">待审核</option>
+                                <option value="1">审核通过</option>
+                                <option value="2">审核未通过</option>
+                            </select>
+                            </div>
+                            <div id="newBtn">
+                                <div class="query-btn" @click="queryBrand">搜索</div>
+                                <div class="addBrand" @click="newBrand">提交新品牌</div>
+                            </div>
+                    </form>
+                </div>
+                <div class="brand-list">
+                    <ul class="brand-title">
+                        <li>品牌名称</li>
+                        <li>品牌logo</li>
+                        <li>状态</li>
+                        <li>品牌描述</li>
+                        <li>提交时间</li>
+                        <li>操作</li>
+                    </ul>
+                    <div class="tbody">
+                        <ul v-for="item in brandlist">
+                            <li class="brand-name"><h3>{{item.name}}</h3></li>
+                            <li class="brand-logo"><img :src="item.logo"></li>
+                            <li class="brand-status">
+                                <span class="font-red"  v-if="item.status ==0">待审核</span>
+                                <span class="font-blue" v-if="item.status ==1">审核通过</span>
+                                <span class="font-red" v-if="item.status ==2">审核未通过 <br>原因:{{item.auditNote}}</span>
+                            </li>
+                            <li class="brand-description">
+                                <span v-if="item.description ==''|| item.description==null">暂无</span>
+                                <span v-else>{{item.description}}</span>
+
+                            </li>
+                            <li class="brand-time">{{item.createDate}}</li>
+                            <li class="brand-edit" >
+                                <span v-if="item.status != 1" @click="editBrand(item)">编辑</span>
+                                <span v-else>无</span>
+                            </li>
+                        </ul>
+                    </div>
+                </div>
+                     <div v-if="(!isPC) && noMore" class="noMore">---- 没有更多了 ----</div>
+                     <div class="pageWrap clear" v-if="isPC && pageTotal>1">
+                            <a v-if="params.pageNum>1" class="prev" @click="toPagination(params.pageNum*1-1)" href="javascript:void(0);"></a>
+                            <template v-for="n in showPageBtn">
+                                <a v-if="n" :class="{'on':(n==params.pageNum)}" @click="toPagination(n)" href="javascript:void(0);" v-text="n"></a>
+                                <span v-else>···</span>
+                            </template>
+                            <a v-if="params.pageNum<pageTotal" class="next" @click="toPagination(params.pageNum*1+1)" href="javascript:void(0);"></a>
+                            <span>共<b v-text="pageTotal>1?pageTotal:1"></b>页</span>
+                            <span>跳至</span>
+                            <input v-model="pageInput" @blur="checkNum()"/>
+                            <span>页</span>&nbsp;
+                            <a class="btn" href="javascript:void(0);" @click="toPagination(pageInput)">点击跳转</a>
+                     </div>
+            </div>
+        </div>
+         <div class="bg-brand" v-show="bgflag">
+             <div class="add-brand-box">
+                    <div class="modal-header">
+                        <span class="shou-address">添加新品牌</span>
+                        <span class="close-modalForm" @click="closebg">x</span>
+                    </div>
+                    <div class="brand-content">
+                        <div class="brand-name">
+                            <span class="label"><em class="required">*</em> 品牌名称:</span>
+                            <input type="text" v-model="brandobj.name" placeholder="请输入品牌名称"/>
+                        </div>
+                        <div class="brand-img">
+                            <span class="label">品牌logo:</span>
+                            <div class="img-box upimg">
+                                <img class="center" src="" style="display: none">
+                                <input type="file"  class="add-pic"  id="uploadfile" accept="image/*"/>
+                              </div>
+                            <p class="tishiyu">请上传<span class="font-color">jpg/png</span>格式的图片,大小不超过<span>5M</span> </p>
+                         </div>
+                        <div class="brand-description">
+                            <span class="label">品牌描述:</span>
+                             <textarea rows="" cols="" class="miaoshu" v-model="brandobj.description" placeholder="请描述品牌信息,不超过200字" maxlength="200" ></textarea>
+                        </div>
+                    </div>
+                     <div class="box-btn">
+                         <div class="btn-submit">提交</div>
+                          <div class="btn-cancel">取消</div>
+                     </div>
+                </div>
+             </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/supplier.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/supplier-center/shop/goods.js(v=${version})}"></script>
 </body>
 </html>