zhengjinyi 4 lat temu
rodzic
commit
19ff20c448
29 zmienionych plików z 2039 dodań i 119 usunięć
  1. 1 1
      src/main/resources/config/dev/application-dev.yml
  2. 2 0
      src/main/resources/static/css/user-center/message.css
  3. 90 0
      src/main/resources/static/css/user-center/operation/form.css
  4. 21 16
      src/main/resources/static/css/user-center/operation/list.css
  5. 66 0
      src/main/resources/static/css/user-center/repair/detail.css
  6. 66 0
      src/main/resources/static/css/user-center/repair/form.css
  7. 12 10
      src/main/resources/static/css/user-center/repair/list.css
  8. 108 0
      src/main/resources/static/css/user-center/setting/information.css
  9. 30 0
      src/main/resources/static/css/user-center/setting/password.css
  10. 29 0
      src/main/resources/static/css/user-center/setting/phone.css
  11. 3 3
      src/main/resources/static/js/common/serviceapi/repair.service.js
  12. 21 3
      src/main/resources/static/js/common/serviceapi/user.service.js
  13. 183 0
      src/main/resources/static/js/user-center/operation/form.js
  14. 74 5
      src/main/resources/static/js/user-center/operation/list.js
  15. 24 0
      src/main/resources/static/js/user-center/repair/detail.js
  16. 155 0
      src/main/resources/static/js/user-center/repair/form-user.js
  17. 25 4
      src/main/resources/static/js/user-center/repair/list.js
  18. 289 0
      src/main/resources/static/js/user-center/setting/information.js
  19. 228 0
      src/main/resources/static/js/user-center/setting/password.js
  20. 228 0
      src/main/resources/static/js/user-center/setting/phone.js
  21. 1 0
      src/main/resources/templates/user-center/message/list.html
  22. 42 8
      src/main/resources/templates/user-center/operation/form.html
  23. 10 7
      src/main/resources/templates/user-center/operation/list.html
  24. 40 0
      src/main/resources/templates/user-center/repair/detail.html
  25. 42 29
      src/main/resources/templates/user-center/repair/form-user.html
  26. 12 9
      src/main/resources/templates/user-center/repair/list.html
  27. 191 8
      src/main/resources/templates/user-center/setting/information.html
  28. 23 8
      src/main/resources/templates/user-center/setting/password.html
  29. 23 8
      src/main/resources/templates/user-center/setting/phone.html

+ 1 - 1
src/main/resources/config/dev/application-dev.yml

@@ -52,7 +52,7 @@ logging:
 
 # 服务域名
 caimei:
-  spiServer: http://192.168.2.75:8008
+  spiServer: http://192.168.2.56:8008
   imageDomain: https://img-b.caimei365.com
   wwwDomain: https://www-b.caimei365.com
 

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

@@ -4,6 +4,8 @@ li{list-style:none}
  * PC端
  */
 @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;}

+ 90 - 0
src/main/resources/static/css/user-center/operation/form.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}
+
+
+
+
+
+}
+

+ 21 - 16
src/main/resources/static/css/user-center/operation/list.css

@@ -40,25 +40,30 @@ li{list-style:none}
     .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:8%;text-align: center;}
-    .container .section .title .td.td-4{width:8%;text-align: center;}
-    .container .section .title .td.td-5{width:8%;text-align: center;}
-    .container .section .title .td.td-6{width:10%;text-align: center;}
-    .container .section .title .td.td-7{width:16%;text-align: center;}
-    .container .section .title .td.td-8{width:16%;text-align: center;}
-    .container .section .title .td.td-9{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: 54px;}
-    .container .section .list .td{height: 54px;font-size: 14px;color:#22272e;float: left;line-height:54px;text-align: left;}
+    .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:8%;text-align: center;}
-    .container .section .list .td.td-4{width:8%;text-align: center;}
-    .container .section .list .td.td-5{width:8%;text-align: center;}
-    .container .section .list .td.td-6{width:10%;text-align: center;}
-    .container .section .list .td.td-7{width:16%;text-align: center;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;}
-    .container .section .list .td.td-8{width:16%;text-align: center;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;}
-    .container .section .list .td.td-9{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;}
 }
 
 /**

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

@@ -0,0 +1,66 @@
+@charset "utf-8";
+li{list-style:none}
+/**
+ * PC端
+ */
+@media screen and (min-width:768px){
+    .navLayout {min-height: 410px;}
+    .crumbs{padding-left: 220px;padding-right: 20px;}
+    .crumbs .link{display: block;float: right;font-size: 14px;color: #E15616;text-decoration: underline;}
+    .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}
+    .container{width: 100%;height: auto;background-color: #ffffff;box-sizing: border-box;padding:32px 225px;}
+    .container .formLine{width: 100%;float: left;}
+    .container .formLine.file{margin-top: 16px;}
+    .container .formLine .upload-image{width: 100%;height: 92px;margin: 5px 0;}
+    .container .formLine .upload-file{width: 91px;height: 91px;cursor: pointer; margin-right: 10px;float: left; border: 1px solid #EBEBEB; position: relative; border-radius: 2px;}
+    .container .formLine .upload-file .icon-del{width: 16px;height: 16px;display: block;position: absolute;right:0;top:0;cursor: pointer;background: url("/img/base/icon.png")-118px -140px no-repeat;}
+    .container .formLine .upload-file .file-add{display: block;width:58px ;height:50px;position: absolute;top: 0;left: 0;right: 0;bottom: 0;margin: auto;}
+    .container .formLine .upload-file .file-add .icon{display: block;width:23px ;height:23px;margin:0 auto;}
+    .container .formLine .upload-file .file-add .icon:before{width:23px ;height:23px;background-position: -169px -375px;}
+    .container .formLine .upload-file .file-add p{color: #9aa5b5;}
+    .container .formLine .upload-file .input-file{width: 92px;height: 92px;opacity:0;cursor: pointer;}
+    .container .formLine .upload-file .upload-img{width: 100%;height: 100%;display: block;border-radius: 2px;}
+    .container .formLine .upload-tips{width: 100%;height:auto;}
+    .container .formLine .upload-tips p{font-size: 14px;text-align: left;color: #f94b4b;line-height: 24px;}
+    .container .formLine .address.mark textarea{margin-top: 0;}
+    .container .formLine .btn{width: 208px;height: 50px;display: block;font-size: 14px;color: #FFF;text-align: center;line-height: 50px; margin: 0 auto;background-color: #e15616;box-shadow: 0px 3px 6px 0px rgba(249, 75, 75, 0.17);border-radius: 2px;}
+    .container .formLine .btn.disabled{background-color: #999999;}
+
+
+}
+
+/**
+* 移动端
+*/
+@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}
+
+
+
+
+
+}
+

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

@@ -0,0 +1,66 @@
+@charset "utf-8";
+li{list-style:none}
+/**
+ * PC端
+ */
+@media screen and (min-width:768px){
+    .navLayout {min-height: 410px;}
+    .crumbs{padding-left: 220px;padding-right: 20px;}
+    .crumbs .link{display: block;float: right;font-size: 14px;color: #E15616;text-decoration: underline;}
+    .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}
+    .container{width: 100%;height: auto;background-color: #ffffff;box-sizing: border-box;padding:32px 225px;}
+    .container .formLine{width: 100%;float: left;}
+    .container .formLine.file{margin-top: 16px;}
+    .container .formLine .upload-image{width: 100%;height: 92px;margin: 5px 0;}
+    .container .formLine .upload-file{width: 91px;height: 91px;cursor: pointer; margin-right: 10px;float: left; border: 1px solid #EBEBEB; position: relative; border-radius: 2px;}
+    .container .formLine .upload-file .icon-del{width: 16px;height: 16px;display: block;position: absolute;right:0;top:0;cursor: pointer;background: url("/img/base/icon.png")-118px -140px no-repeat;}
+    .container .formLine .upload-file .file-add{display: block;width:58px ;height:50px;position: absolute;top: 0;left: 0;right: 0;bottom: 0;margin: auto;}
+    .container .formLine .upload-file .file-add .icon{display: block;width:23px ;height:23px;margin:0 auto;}
+    .container .formLine .upload-file .file-add .icon:before{width:23px ;height:23px;background-position: -169px -375px;}
+    .container .formLine .upload-file .file-add p{color: #9aa5b5;}
+    .container .formLine .upload-file .input-file{width: 92px;height: 92px;opacity:0;cursor: pointer;}
+    .container .formLine .upload-file .upload-img{width: 100%;height: 100%;display: block;border-radius: 2px;}
+    .container .formLine .upload-tips{width: 100%;height:auto;}
+    .container .formLine .upload-tips p{font-size: 14px;text-align: left;color: #f94b4b;line-height: 24px;}
+    .container .formLine .address.mark textarea{margin-top: 0;}
+    .container .formLine .btn{width: 208px;height: 50px;display: block;font-size: 14px;color: #FFF;text-align: center;line-height: 50px; margin: 0 auto;background-color: #e15616;box-shadow: 0px 3px 6px 0px rgba(249, 75, 75, 0.17);border-radius: 2px;}
+    .container .formLine .btn.disabled{background-color: #999999;}
+
+
+}
+
+/**
+* 移动端
+*/
+@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}
+
+
+
+
+
+}
+

+ 12 - 10
src/main/resources/static/css/user-center/repair/list.css

@@ -46,11 +46,11 @@ li{list-style:none}
     .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:11%;}
-    .container .section .title .td.td-2{width:14%;}
-    .container .section .title .td.td-3{width:11%;}
-    .container .section .title .td.td-4{width:23%;}
-    .container .section .title .td.td-5{width:11%;}
-    .container .section .title .td.td-6{width:14%;}
+    .container .section .title .td.td-2{width:14%;text-align: center;}
+    .container .section .title .td.td-3{width:19%;text-align: center;}
+    .container .section .title .td.td-4{width:15%;text-align: center;}
+    .container .section .title .td.td-5{width:11%;text-align: center;}
+    .container .section .title .td.td-6{width:14%;text-align: center;}
     .container .section .title .td.td-7{width:8%;text-align: center;}
     .container .section .title .td.td-8{width:8%;text-align: center;}
     .container .section .title .td.td-9{width:8%;text-align: center;}
@@ -58,13 +58,15 @@ li{list-style:none}
     .container .section .list{width: 100%;height: 44px;}
     .container .section .list .td{height: 54px;font-size: 14px;color:#627386;float: left;line-height:54px;text-align: left;}
     .container .section .list .td.td-1{width:11%;}
-    .container .section .list .td.td-2{width:14%;}
-    .container .section .list .td.td-3{width:11%;}
-    .container .section .list .td.td-4{width:23%;}
-    .container .section .list .td.td-5{width:11%;}
-    .container .section .list .td.td-6{width:14%;}
+    .container .section .list .td.td-2{width:14%;text-align: center;}
+    .container .section .list .td.td-3{width:19%;text-align: center;}
+    .container .section .list .td.td-4{width:15%;text-align: center;}
+    .container .section .list .td.td-5{width:11%;text-align: center;}
+    .container .section .list .td.td-6{width:14%;text-align: center;}
     .container .section .list .td.td-7{width:8%;text-align: center;}
     .container .section .list .td.td-8{width:8%;text-align: center;}
+    .container .section .list .td.td-8 a{text-decoration: underline;}
+    .container .section .list .td.td-8 .eva{color: #1890f9;}
 }
 
 /**

+ 108 - 0
src/main/resources/static/css/user-center/setting/information.css

@@ -0,0 +1,108 @@
+@charset "utf-8";
+li{list-style:none}
+/**
+ * PC端
+ */
+@media screen and (min-width:768px){
+.container{width: 100%;min-height:900px;box-sizing: border-box;padding: 20px 236px;background-color: #FFF;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);}
+.container .title{width: 100%;height: 64px;line-height: 64px;text-align: left;font-size: 24px;color: #22272e;float: left;}
+.subLine{margin-top: 20px;float: left;}
+.subLine .btn-upgrade {cursor: pointer;display: block;width: 232px;height: 50px;line-height: 50px;background-color: #e15616;border-radius: 2px;text-align: center;font-size: 18px;color: #FFF;float: left;margin-right: 15px;}
+.subLine .btn-upgrade.none{border: 1px solid #E15616;background-color: #ffe6dc;box-shadow: 0px 3px 6px 0px rgba(249, 75, 75, 0.17);color: #e15616;}
+.subLine .btn-upgrade.disabled{background-color: #999999;}
+.formLine{width: 100%;float: left;}
+
+.formLine .form-upload{width: 128px;height: auto;float: left;margin-right: 20px;}
+.formLine .formLine-file{width: 128px;height: 90px;position: relative;}
+.formLine .form-upload-tips{width: 20px;height: 90px;float: left;position: relative;}
+.formLine .form-upload-tips .icon{width: 20px;height: 20px;float: left;background: url("/img/base/icon.png") no-repeat;display: block;margin-top: 40px;}
+.formLine .form-upload-tips .icon-wen{background-position: -84px -144px;cursor: pointer;}
+.formLine .form-upload-tips .wen-tips{width: 182px;height: 46px;line-height: 46px;text-align: center;color: #FFF;font-size: 14px; background-color: #1890f9;box-shadow: 0px 3px 6px 0px rgba(24, 144, 249, 0.17); position: absolute;bottom: -24px;left: -2px;border-radius: 3px;display: none;}
+.formLine .form-upload-tips .wen-tips:before{content: ''; width: 0px;height: 0px;border-width: 8px;border-style: solid;border-color: transparent transparent #1890f9 transparent;position: absolute;top: -15px;left: 5px;}
+.formLine .form-upload-tips:hover .wen-tips{display: block;}
+.formLine .file{width: 128px;height: 90px;opacity: 0;position: absolute;top: 0;left: 0;z-index: 999;cursor: pointer;}
+.formLine .formLine-file .icon{width: 128px;height: 90px;display: block;}
+.formLine .formLine-file .file-biss{background: url("/img/account/icon-bisse.png") no-repeat;}
+.formLine .formLine-file .file-door{background: url("/img/account/icon-door.png") no-repeat;}
+.formLine .formLine-file .file-zizhi{background: url("/img/account/icon-zizhi.png") no-repeat;}
+.formLine .form-upload-image{width: 128px;height: 90px;position: relative;}
+.formLine .form-upload-image .upload-img{width: 128px;height: 90px;display: block;}
+.formLine .form-upload-image .icon{width: 20px;height: 20px;display: block;position: absolute;left: 0;top: 0;cursor: pointer;}
+.formLine .form-upload-image .icon:before{width: 20px;height: 20px;background-position: -116px -140px;}
+.formLine .business{height:auto;position:relative}
+.formLine .business input[type="text"] {width: 350px;display: block;float: left;margin-right: 15px;}
+.formLine .business a {display: block;float: left; width: 92px;height: 32px;line-height: 34px;font-size: 14px;color: #e15616;background-color: #ffe6dc;border-radius: 2px;border: solid 1px #e15616;text-align: center;}
+
+
+
+}
+
+/**
+* 移动端
+*/
+@media screen and (max-width:768px){
+body{width:100%;height:100%;background:#FFF url(/img/account/register.png) no-repeat center bottom;background-size:100% auto;background-attachment: fixed;}
+footer{display:none}
+.registerClub{padding: 20px 0;}
+.registerShop{padding: 20px 0;}
+.selectAccount{width:100%;height:90vh;text-align:center;}
+.selectAccount .title{height:6vw;font-size:4.2vw;font-weight:bold;line-height:6vw;color:#22272e;padding-top:36vw}
+.selectAccount .cont{margin-top:10vw;}
+.selectAccount .cont span{display:inline-block;width:24.8vw;margin:0 6.7vw;line-height:4.6vw;color:#3b77ff;font-size:3.4vw;cursor:pointer}
+.selectAccount .cont img{display:inline-block;width:24.8vw;height:24.8vw;background-color:#c2d8fa;border-radius:12.4vw}
+.signAccount .title-tips{margin-bottom: 3.2vm;width: 100%;height:9.6vw;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%);}
+.signAccount .title-tips p{width: 100%;height:9.6vw;font-family: Microsoft YaHei;font-size:3.1vw;font-weight: normal;font-stretch: normal;line-height: 9.6vw;letter-spacing:0;color: #e15616;text-align: center;}
+.signAccount{width:100%;min-height:90vh;font-size:3.4vw;color:#627386;}
+.signAccount .advisory>.duv{float: right;line-height: 5.6vw;padding-right: 4vw;}
+.signAccount .advisory>.duv span{display: inline-block;float: left;}
+.signAccount .advisory>.duv>.mIcon{height:5.6vw;line-height:5.6vw;font-size:1.6vw;color:#1890f9;display: block;}
+.signAccount .advisory>.duv>.mIcon:before{width:5.6vw;height:5.6vw;background-position:-84.2vw -0vw;}
+.signAccount .title{height:6vw;line-height:6vw;font-weight:bold;font-size:4.2vw;color:#22272e;text-align:center;padding:5.2vw 0}
+.registerShop .tit{color:#22272e;font-size:3.7vw;font-weight:normal;margin:3vw 0}
+.signAccount form{width:93.4vw;margin:0 auto;}
+.supplierConfirm .cont{width:100%;min-height:90vw;box-sizing:border-box;padding:3.3vw;color:#333;font-size:3.4vw;}
+.supplierConfirm .cont h3{height:6vw;line-height:6vw;font-weight:bold;font-size:4.2vw;color:#22272e;text-align:center;}
+.supplierConfirm .cont p:first-of-type{color:#E36125;margin-top:3vw}
+.supplierConfirm .cont p:nth-of-type(2){color:#666;margin:5vw 0 3vw 0}
+.supplierConfirm .cont li{line-height:5vw;margin-bottom:2vw}
+.supplierConfirm .btnLine{margin-top:5vw;line-height:5vw;text-align:center;font-weight:bold;position:relative;}
+.supplierConfirm .btnLine p{color:#000;}
+.supplierConfirm .btnLine input{margin-right:1vw;}
+.supplierConfirm .btnLine button{display:block;font-size:3.4vw;margin:5vw auto;width:93.4vw;height:11.2vw;line-height:11.2vw;background:#E15616;color:#fff;}
+.formLine { width: 100%;position: relative;font-size: 3.4vw;float: left;}
+.formLine .business{height:auto;position:relative}
+.formLine .business input[type="text"] {width:66vw;display: block;float: left;margin-right: 3vw;}
+.formLine .business a {display: block;float: left; width:21.4vw;height: 10.5vw;line-height: 10.5vw;font-size:3.4vw;color: #e15616;background-color: #ffe6dc;border-radius: 2px;border: solid 1px #e15616;text-align: center;}
+
+.advisory .mask{display: none;width: 100%;height: 100%;position: fixed;top: 0;left: 0;background-color: rgba(0,0,0,.5);z-index: 99;}
+.advisory .mask.active{display: block;}
+.advisoryInfo.active{display: block;}
+.advisoryInfo .icon-close{position:absolute;top:0;right: 0; padding: 1vw;width: 6.4vw;height: 6.4vw;text-align: center;}
+.advisoryInfo .icon-close:before {content: '\2715';font-size: 4.5vw;font-weight: bold;}
+.advisoryInfo{z-index: 999;box-sizing:border-box;width:74.7vw;background:#fff;box-shadow:0 10px 20px 0 rgba(0,0,0,0.16);padding:6.2vw;border-radius:1vw;display: none;position: absolute;left: 50%;top: 50%;transform: translate(-50%,-50%);}
+.advisoryInfo form{width:100%}
+.advisoryInfo .formLine p{line-height:8vw}
+.advisoryInfo .info{margin-bottom:3vw;color:#1890f9;font-size:3.1vw}
+.advisoryInfo .btn{display:block;width:46vw;height:9.8vw;line-height:9.8vw;margin:3vw auto 0;font-size:3.4vw;background-color:#ffe6dc;border-radius:2px;border:solid 1px #e15616;color:#e15616;text-align:center}
+.formLine .form-upload{width: 36vw;height: auto;float: left;margin-right: 4vw;}
+.formLine .formLine-file{width: 36vw;height: 25.3vw;position: relative;}
+.formLine .form-upload-image{width: 36vw;height: 25.3vw;position: relative;}
+.formLine .form-upload-image .upload-img{width: 36vw;height: 25.3vw;display: block;}
+.formLine .form-upload-image .mIcon{width: 4vw;height:4vw;;display: block;position: absolute;left: 0;top: 0;cursor: pointer;}
+.formLine .form-upload-image .mIcon:before{width: 4vw;height: 4vw;background-position: -91vw -8.5vw;}
+.formLine .form-upload-tips{width: 4.8vw;height: 25.3vw;float: left;position: relative;}
+.formLine .form-upload-tips .mIcon{width: 4.8vw;height: 4.8vw;float: left;display: block;margin-top: 10vw;}
+.formLine .form-upload-tips .mIcon:before{width: 4.8vw;height: 4.8vw;background-position:-76.6vw -1.2vw;}
+.formLine .form-upload-tips .wen-tips{width: 36vw;height: 9.2vw;line-height: 9.2vw;text-align: center;color: #FFF;font-size: 2.4vw; background-color: #1890f9;box-shadow: 0px 3px 6px 0px rgba(24, 144, 249, 0.17); position: absolute;bottom: 0;left: -1vw;border-radius: 3px;display: none;}
+.formLine .form-upload-tips .wen-tips:before{content: ''; width: 0px;height: 0px;border-width: 8px;border-style: solid;border-color: transparent transparent #1890f9 transparent;position: absolute;top: -15px;left: 5px;}
+.formLine .form-upload-tips:hover .wen-tips{display: block;}
+.formLine .file{width: 36vw;height: 25.3vw;opacity: 0;position: absolute;top: 0;left: 0;z-index: 999;cursor: pointer;}
+.formLine .formLine-file .mIcon{width: 36vw;height: 25.3vw;display: block;}
+.formLine .formLine-file .file-biss{background: url("/img/account/icon-bisse.png") no-repeat;background-size: cover;}
+.formLine .formLine-file .file-door{background: url("/img/account/icon-door.png") no-repeat;background-size: cover;}
+.formLine .formLine-file .file-zizhi{background: url("/img/account/icon-zizhi.png") no-repeat;background-size: cover;}
+.subLine{margin-top:2vw;float: left;}
+.subLine .btn-upgrade {cursor: pointer;display: block;width: 93.4vw;height: 11.2vw;line-height: 50px;background-color: #e15616;border-radius: 0.2vw;text-align: center;font-size: 3.4vw;color: #FFF;float: left;margin-bottom: 2.8vw;}
+.subLine .btn-upgrade.none{border: 1px solid #E15616;background-color: #ffe6dc;box-shadow: 0px 3px 6px 0px rgba(249, 75, 75, 0.17);color: #e15616;}
+.subLine .btn-upgrade.disabled{background-color: #999999;}
+}

+ 30 - 0
src/main/resources/static/css/user-center/setting/password.css

@@ -0,0 +1,30 @@
+@charset "utf-8";
+li{list-style:none}
+/**
+ *找回密码
+ * PC端
+ */
+@media screen and (min-width:768px){
+body{background-color: #F5F5F5;}
+footer .footTop{display:none;}
+.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;}
+.container{width: 100%;min-height:500px;box-sizing: border-box;padding: 16px;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%;}
+
+}

+ 29 - 0
src/main/resources/static/css/user-center/setting/phone.css

@@ -0,0 +1,29 @@
+@charset "utf-8";
+li{list-style:none}
+/**
+ *找回密码
+ * PC端
+ */
+@media screen and (min-width:768px){
+body{background-color: #F5F5F5;}
+footer .footTop{display:none;}
+.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;}
+.container{width: 100%;min-height:500px;box-sizing: border-box;padding: 16px;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%;}
+
+}

+ 3 - 3
src/main/resources/static/js/common/serviceapi/repair.service.js

@@ -11,9 +11,9 @@ var RepairApi = {
                 callback(res);
             });
         },
-        /* 添加,保存地址 */
-        AddSaveAddress: function (params, callback) {
-            Http.AjaxService({ url:'/personalCenter/saveAddress', type:'POST', data:params, json:false})
+        /* 用户申请维修 */
+        AddApplyMaintenance: function (params, callback) {
+            Http.AjaxService({ url:'/pcCenter/applyMaintenance', type:'POST', data:params, json:false})
             .then(function(res){
                 callback(res);
             });

+ 21 - 3
src/main/resources/static/js/common/serviceapi/user.service.js

@@ -60,9 +60,27 @@ var UserApi = {
         },
         GetMyOperationList : function(params,callback) {//查询机构运营人员管理列表
             Http.AjaxService({ url:'/operation/list', type:'get', data:params, json:true})
-                .then(function(res){
-                    callback(res);
-                });
+            .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);
+            });
+        },
+        GetApplicationData : function(params,callback) {//查询机构资料信息
+            Http.AjaxService({ url:'/user/club/applicationData', type:'GET', data:params, json:false})
+            .then(function(res){
+                callback(res);
+            });
         },
         SupplierRgister:function(params, callback){//供应商注册
             Http.AjaxService({url: '/supplier/register', type: 'post', data: params, json: false})

+ 183 - 0
src/main/resources/static/js/user-center/operation/form.js

@@ -0,0 +1,183 @@
+jqMultipleShow("click", ".navList", ".tab", ".con");
+var operationPage = new Vue({
+    el: "#operationPage",
+    data: {
+        isRequset:true,
+        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;
+            UserApi.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 () {
+                UserApi.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 () {
+                UserApi.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");
+
+    }
+});

+ 74 - 5
src/main/resources/static/js/user-center/operation/list.js

@@ -31,7 +31,7 @@ var operationPage = new Vue({
         stateExp:function (state){ //订单状态文字和颜色
             var stateText = '',
                 stateTextObject={
-                    0:'已绑定',
+                    2:'已绑定',
                     1:'未绑定'
                 };
                 Object.keys(stateTextObject).forEach(function(key){
@@ -40,6 +40,20 @@ var operationPage = new Vue({
                 }
              });
             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: {
@@ -66,7 +80,7 @@ var operationPage = new Vue({
         toPagination: function (pageNum) {//点击切换分页
             if (pageNum <= this.pageTotal) {
                 this.listQuery.pageNum = pageNum;
-                this.GetQueryOrderListData();
+                this.GetQueryListData();
             }
         },
         checkNum: function () {//输入跳转分页
@@ -76,7 +90,7 @@ var operationPage = new Vue({
                 this.pageInput = 1;
             }
         },
-        GetQueryListData:function(){//查询订单列表
+        GetQueryListData:function(){//查询运营人员列表
             var _self = this;
             UserApi.GetMyOperationList(_self.listQuery,function (response) {
                 if(response.code == 0){
@@ -95,8 +109,63 @@ var operationPage = new Vue({
                 }
             })
         },
-        hanldDetilsOrderFn:function(orderId){//订单详情
-            window.location.href='/user/order/detail.html?order='+orderId;
+        searchOperationFn:function(){//点击搜索
+            this.GetQueryListData();
+        },
+        UpdataOperationFn:function(data){//更新邀请码
+            var _self = this;
+            CAIMEI.Modal('确定更新邀请码吗?更新后将会短信通知该运营人员','取消','确定',function () {
+                UserApi.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 () {
+                UserApi.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 () {

+ 24 - 0
src/main/resources/static/js/user-center/repair/detail.js

@@ -0,0 +1,24 @@
+jqMultipleShow("click", ".navList", ".tab", ".con");
+var repairDetailPage = new Vue({
+    el: "#repairDetailPage",
+    data: {
+        userId: 0,
+    },
+    filters: {
+
+    },
+    computed: {
+
+    },
+    methods: {
+
+    },
+    mounted: function () {
+        if(globalUserData){
+            this.userId = globalUserData.userId;
+        }
+        console.log(this.listQuery.orderState)
+        $('.navLayout').find('.navList').removeClass("on").find('.con').hide().find('a').removeClass("on");
+        $('.navLayout').find('.navList').eq(0).addClass("on").find('.con').show().find('a').eq(1).addClass("on");
+    }
+});

+ 155 - 0
src/main/resources/static/js/user-center/repair/form-user.js

@@ -0,0 +1,155 @@
+jqMultipleShow("click", ".navList", ".tab", ".con");
+var addFormPage = new Vue({
+    el: '#addFormPage',
+    data: {
+        loginLoading:false,
+        userId:0,
+        form: {
+            userId:'',
+            userContact: '',//联系人
+            userMobile: '',//联系方式
+            provinceName: '',//省
+            cityName: '',//市
+            townName: '',//区
+            userAddress: '',//详细地址
+            instrumentName: '',//仪器名称
+            manufacturer: '',//生产厂家
+            imagesList: [],//图片
+            problemDescription: ''//问题描述
+        },
+        rule:{
+            name: '^[a-zA-Z\\u4e00-\\u9fa5]{2,}$',
+            phone: '^\\d{6,12}$'
+        },
+        formData:new FormData(),
+        ProvinceList:[],
+        cityArray:[],
+        townArray:[],
+        addressfrom: {
+            province: '',//省id
+            city: '',
+            town: ''
+        },
+    },
+    computed: {
+
+    },
+    methods: {
+        blurHandle: function(event) {  // 失去焦点校验
+            var el = event.currentTarget;
+            verifyHandle(el);
+        },
+        submitData: function(){ // 提交数据
+            var _self = this;
+            var pass = verifyForm();
+            if (_self.loginLoading) { return false; }
+            this.$nextTick(function() {
+                if (!pass) {return false;}
+                _self.loginLoading = true;
+                RepairApi.AddApplyMaintenance(_self.form,function (response) {
+                    if(response.code === 0){
+                        CAIMEI.dialog('维修申请提交成功!',true,function () {
+                            _self.loginLoading = false;
+                            window.location.href="/user/repair/list.html";
+                        });
+                    } else {
+                        CAIMEI.Alert(response.msg,'确定',false);
+                        _self.loginLoading = false;
+                    }
+                });
+            });
+        },
+        ChangeProvince:function (event) {//选择省份
+            var _self = this;
+            var province_ =  document.getElementById('province');
+            _self.addressfrom.province = event.target.value;
+            _self.form.provinceName = province_.options[province_.selectedIndex].text;
+            if(_self.addressfrom.province==''){//省为请选择时市区初始化
+                _self.cityArray=[];
+                _self.townArray=[];
+            }else {
+                _self.GetCtiyFn();
+            }
+        },
+        ChangeGetcity:function(event){//加载市
+            var _self = this;
+            var ctiy_ =  document.getElementById('cCity');
+            _self.addressfrom.city = event.target.value;
+            _self.form.cityName = ctiy_.options[ctiy_.selectedIndex].text;
+            if(_self.addressfrom.city==''){
+                _self.townArray=[];
+            }else {
+                _self.GetTownFn();
+            }
+        },
+        ChangeGetcTown:function(event){//选择地区
+            var _self = this;
+            var town_ =  document.getElementById('cTown');
+            _self.form.townName = town_.options[town_.selectedIndex].text;
+        },
+        GetProvinceFn: function(){//获取全部省份
+            var _self = this;
+            PublicApi.GetProvince({},function(response){
+                if(response.code == 0){
+                    _self.ProvinceList =response.data;
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                }
+            })
+        },
+        GetCtiyFn: function(){//获取市
+            var _self = this;
+            PublicApi.GetCity({ provinceId: _self.addressfrom.province },function(response){
+                if(response.code == 0 ){
+                    _self.cityArray = response.data;
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                }
+            })
+        },
+        GetTownFn: function(){//获取区
+            var _self = this;
+            PublicApi.GetTown({ cityId: _self.addressfrom.city },function(response){
+                if(response.code == 0 ){
+                    _self.townArray = response.data;
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                }
+            })
+        },
+        uploadGoodsImagesFn: function(event){//上传图片
+            var _self = this;
+            var inputDOM = _self.$refs.goodsImages;
+            var file = inputDOM.files;
+            _self.formData.append('file', file[0]);
+            PublicApi.uploadimg(_self.formData,function(response){
+                _self.form.imagesList.push(response.data);
+                event.target.value = '';
+                console.log(_self.form.imagesList)
+            });
+        },
+        showViewerImageFn: function(index){//预览上传图片
+            var DomEven = '#uploadGoodsImages'+index;
+            var ViewerDom = document.querySelector(DomEven);
+            this.viewer = new Viewer(ViewerDom, {url:'data-image'});
+        },
+        removeGoodsImagesFn: function(index){//删除商品图片
+            var _self = this;
+            _self.form.imagesList.splice(index,1);
+        }
+    },
+    created: function () {
+
+    },
+    mounted: function () {
+        var _self = this;
+        if(globalUserData){
+            _self.userId = globalUserData.userId;
+            _self.form.userId = _self.userId;
+            _self.GetProvinceFn();
+        }
+        $('.navLayout').find('.navList').removeClass("on").find('.con').hide().find('a').removeClass("on");
+        $('.navLayout').find('.navList').eq(0).addClass("on").find('.con').show().find('a').eq(1).addClass("on");
+
+    }
+});

+ 25 - 4
src/main/resources/static/js/user-center/repair/list.js

@@ -33,11 +33,13 @@ var orderPage = new Vue({
         NumFormat:function(text) {//处理金额
             return Number(text).toFixed(2);
         },
-        stateExp:function (state){ //订单状态文字和颜色
+        StateExp:function (state){ //订单状态文字和颜色
             var stateText = '',
                 stateTextObject={
-                    0:'已评价',
-                    4:'已提交'
+                    1:'已提交',
+                    2:'已对接',
+                    3:'已评价',
+                    4:'取消'
                 };
                 Object.keys(stateTextObject).forEach(function(key){
                     if(key == state){
@@ -45,7 +47,8 @@ var orderPage = new Vue({
                 }
              });
             return stateText;
-        }
+        },
+
     },
     computed: {
         pageTotal: function () {
@@ -105,6 +108,24 @@ var orderPage = new Vue({
         },
         selectStatusFn:function(event){
             this.listQuery.status = event.target.value;
+        },
+        ColorFn: function(state){
+            var stateColor = '',
+                stateColorObject={
+                    1:'#1890f9',
+                    2:'#34cc8c',
+                    3:'#E15616',
+                    4:'#666666'
+                };
+            Object.keys(stateColorObject).forEach(function(key){
+                if(key == state){
+                    stateColor = stateColorObject[key]
+                }
+            });
+            return stateColor;
+        },
+        detailsFn:function (id) {
+            window.location.href='/user/repair/detail.html?id='+id;
         }
     },
     mounted: function () {

+ 289 - 0
src/main/resources/static/js/user-center/setting/information.js

@@ -0,0 +1,289 @@
+jqMultipleShow("click", ".navList", ".tab", ".con");
+var informationPage = new Vue({
+    el: "#informationPage",
+    data: {
+        isRequset:true,
+        loginLoading: false,
+        showTabContentIndex:1,
+        showSupplierConfirm:true,
+        advisoryStatus: false,
+        userId:0,
+        showClass:'',
+        mobilCount:0,
+        mobileCodeText:'获取验证码',
+        mobilTime:null,
+        isMobileDisabled:false,
+        isCodeModel:false,
+        codeImagePath:'https://dss2.bdstatic.com/8_V1bjqh_Q23odCf/pacific/1819816496.jpg',
+        codeImageToken:'',
+        imageCode:'',
+        clubUpgradeUser: {
+            userID:'',
+            clubID:'',
+            contractEmail1:'',
+            name:'',
+            sname:'',
+            socialCreditCode:'',
+            mainPros:[],
+            businessLicenseImage:'',
+            headpic:'',
+            medicalPracticeLicenseImg:'',
+            firstClubType:'',
+            secondClubType:0,
+            department:'',
+            provinceID :'',
+            cityID : '',
+            townID : '',
+        },
+        userMainPros:[],
+        formData:new FormData(),
+        isAgreed:0,
+        isAgree:false,
+        isShowAgree:false,
+        mentuzCampNullList:[
+            {value:'1',name:'整形'},
+            {value:'2',name:'轻医美'},
+            {value:'3',name:'皮肤科'},
+        ],
+        medicaCampNullList: [
+            {name:'美容'},
+            {name:'美体'},
+            {name:'美发'},
+            {name:'皮肤管理'},
+            {name:'光电'},
+            {name:'综合类'},
+            {name:'中医养生'},
+            {name:'spa'},
+        ],
+        mainPros: ['产品','仪器','服务','整形'],
+        mainProEdit: '',
+        ProvinceList:[],
+        cityArray:[],
+        townArray:[],
+        addressfrom: {
+            provinceID: '',//省id
+            cityID: '',//市ID
+            townID: ''//地区ID
+        },
+        rule:{
+            name: '^[a-zA-Z\\u4e00-\\u9fa5]{2,}$',
+            phone: '^\\d{6,12}$',
+            code: '^\\d{6}$',
+            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: {
+        infoInformationData:function(){
+            var _self = this;
+            UserApi.GetApplicationData({userID:_self.userId},function (response) {
+                if(response.code == 0){
+                    var data = response.data;
+                    _self.isRequset = false;
+                    _self.clubUpgradeUser = data.club;
+                    _self.addressfrom.provinceID = data.club.provinceID;
+                    _self.addressfrom.cityID = data.club.cityID;
+                    _self.addressfrom.townID = data.club.townID;
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                }
+            })
+        },
+        clubUpgrade:function() {//升级会员机构
+            var _self = this;
+            var pass = verifyForm();
+            if (_self.loginLoading) { return false; }
+            this.$nextTick(function() {
+                if (!pass) {return false;}
+                _self.clubUpgradeUser.mainPros = _self.userMainPros.join("/");
+                _self.loginLoading = true;
+                UserApi.ClubUpgrade(_self.clubUpgradeUser,function (response) {
+                    if(response.code === 0){
+                        CAIMEI.Alert('您的升级申请已提交审核','确定',true,function () {
+                            _self.clubLoginIndex();
+                            _self.loginLoading = false;
+                        });
+                    } else {
+                        CAIMEI.Alert(response.msg,'确定',false);
+                        _self.loginLoading = false;
+                    }
+                });
+            });
+        },
+        mainProAdd: function(){//添加主营
+            var _self = this;
+            if (_self.mainProEdit.length>0) {
+                if (_self.mainPros.indexOf(_self.mainProEdit)<0){
+                    var obj = {name:_self.mainProEdit};
+                    if(_self.clubUpgradeUser.firstClubType === '0'){
+                        if(_self.checkedArray(_self.mainProEdit,_self.mentuzCampNullList)){
+                            CAIMEI.dialog('主营内容已存在!',false);
+                        }else {
+                            _self.mentuzCampNullList.push(obj);
+                        }
+                    }else{
+                        if(_self.checkedArray(_self.mainProEdit,_self.medicaCampNullList)){
+                            CAIMEI.dialog('主营内容已存在!',false);
+                        }else {
+                            _self.medicaCampNullList.push(obj);
+                        }
+                    }
+                }
+            }
+        },
+        checkedArray:function(content,arr){//判断主营内容是否已存在
+            for(var i in arr){
+                if(arr[i].name == content){
+                    return true;
+                }
+            }
+            return false;
+        },
+        blurHandle: function(event) { // 失去焦点校验
+            var el = event.currentTarget;
+            verifyHandle(el);
+        },
+        uploadBusinessLicenseImageFn: function(event){//上传营业执照
+            var _self = this;
+            var inputDOM = _self.$refs.businessLicenseImage;
+            var file = inputDOM.files;
+            _self.formData.append('file', file[0]);
+            PublicApi.uploadimg(_self.formData,function(response){
+                _self.clubUpgradeUser.businessLicenseImage = response.data;
+                event.target.value = '';
+            });
+        },
+        uploadMentuzImageFn: function(event){//上传营业执照
+            var _self = this;
+            var inputDOM = _self.$refs.businessMentuImage;
+            var file = inputDOM.files;
+            _self.formData.append('file', file[0]);
+            PublicApi.uploadimg(_self.formData,function(response){
+                _self.clubUpgradeUser.headpic = response.data;
+                event.target.value = '';
+            });
+        },
+        uploadMedicaImageFn: function(event){//上传资质证书
+            var _self = this;
+            var inputDOM = _self.$refs.businessMedicaImage;
+            var file = inputDOM.files;
+            _self.formData.append('file', file[0]);
+            PublicApi.uploadimg(_self.formData,function(response){
+                _self.clubUpgradeUser.medicalPracticeLicenseImg = response.data;
+                event.target.value = '';
+            });
+        },
+        deleteBusinessImage:function(){//清楚营业执照图片
+            this.clubUpgradeUser.businessLicenseImage = '';
+        },
+        deleteMentuzImage:function(){//清楚门头照图片
+            this.clubUpgradeUser.headpic = '';
+        },
+        deleteMedicalImage:function(){//清楚资质照图片
+            this.clubUpgradeUser.medicalPracticeLicenseImg = '';
+        },
+        checkedIsAgreeFn:function () {
+            var _self = this;
+            _self.isAgree = !_self.isAgree;
+            if (_self.isAgree){
+                _self.isShowAgree = false;
+                _self.isAgreed = 1;
+            }else{
+                _self.isShowAgree = true;
+                _self.isAgreed = 0;
+            }
+        },
+        GetProvinceFn: function(){//获取全部省份
+            var _self = this;
+            PublicApi.GetProvince({},function(response){
+                if(response.code == 0){
+                    _self.ProvinceList =response.data;
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                }
+            })
+        },
+        ChangeProvince:function () {//选择省份
+            var _self = this;
+            _self.addressfrom.provinceID = event.target.value;
+            _self.clubUpgradeUser.provinceID = event.target.value;
+            if(_self.addressfrom.provinceID==''){//省为请选择时市区初始化
+                _self.cityArray=[];
+                _self.townArray=[];
+                _self.clubUpgradeUser.townID=''
+            }else {
+                _self.GetCtiyFn();
+            }
+        },
+        ChangeGetcity:function(event){//加载市
+            var _self = this;
+            _self.addressfrom.cityID = event.target.value;
+            _self.clubUpgradeUser.cityID = event.target.value;
+            if(_self.addressfrom.cityID==''){
+                _self.townArray=[];
+            }else {
+                _self.GetTownFn();
+            }
+        },
+        ChangeGetcTown:function(event){//选择地区
+            var _self = this;
+            _self.clubUpgradeUser.townID = event.target.value;
+        },
+        GetProvinceFn: function(){//获取全部省份
+            var _self = this;
+            PublicApi.GetProvince({},function(response){
+                if(response.code == 0){
+                    _self.ProvinceList =response.data;
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                }
+            })
+        },
+        GetCtiyFn: function(){//获取市
+            var _self = this;
+            PublicApi.GetCity({ provinceId: _self.addressfrom.province },function(response){
+                if(response.code == 0 ){
+                    _self.cityArray = response.data;
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                }
+            })
+        },
+        GetTownFn: function(){//获取区
+            var _self = this;
+            PublicApi.GetTown({ cityId: _self.addressfrom.city },function(response){
+                if(response.code == 0 ){
+                    _self.townArray = response.data;
+                }else{
+                    CAIMEI.Alert(response.msg,'确定',false);
+                }
+            })
+        },
+        showViewerImageFn:function(){//预览营业执照图片
+            var viewer = new Viewer(document.getElementById('businessLicenseImage'));
+        },
+        showViewerImageFn1:function(){//预览门头照图片
+            var viewer = new Viewer(document.getElementById('uploadMentuzImage'));
+        },
+        showViewerImageFn2:function(){//预览资质图片
+            var viewer = new Viewer(document.getElementById('medicalPracticeLicenseImg'));
+        },
+    },
+    created: function () {
+
+    },
+    mounted: function () {
+        var _self = this;
+        if(globalUserData){
+            _self.userId = globalUserData.userId;
+            _self.infoInformationData();
+            _self.GetProvinceFn();
+        }
+        $('.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(0).addClass("on");
+    }
+});

+ 228 - 0
src/main/resources/static/js/user-center/setting/password.js

@@ -0,0 +1,228 @@
+jqMultipleShow("click", ".navList", ".tab", ".con");
+var passwordPage = new Vue({
+    el: "#passwordPage",
+    data: {
+        title:'手机找回密码',
+        loginLoading: false,
+        showTabContentIndex:0,
+        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.Alert('成功找回密码!','去登录',true,function () {
+                        _self.loginLoading = false;
+                        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.Alert('成功找回密码!','去登录',true,function () {
+                        _self.loginLoading = false;
+                        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);
+        },
+        checkedEmailFn:function () {
+            this.title = "邮箱找回密码";
+            this.showTabContentIndex = 1;
+        },
+        checkedPhoneFn:function () {
+            this.title = "手机找回密码";
+            this.showTabContentIndex = 0;
+        }
+    },
+    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");
+    }
+});

+ 228 - 0
src/main/resources/static/js/user-center/setting/phone.js

@@ -0,0 +1,228 @@
+jqMultipleShow("click", ".navList", ".tab", ".con");
+var phonePage = new Vue({
+    el: "#phonePage",
+    data: {
+        title:'手机找回密码',
+        loginLoading: false,
+        showTabContentIndex:0,
+        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.Alert('成功找回密码!','去登录',true,function () {
+                        _self.loginLoading = false;
+                        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.Alert('成功找回密码!','去登录',true,function () {
+                        _self.loginLoading = false;
+                        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);
+        },
+        checkedEmailFn:function () {
+            this.title = "邮箱找回密码";
+            this.showTabContentIndex = 1;
+        },
+        checkedPhoneFn:function () {
+            this.title = "手机找回密码";
+            this.showTabContentIndex = 0;
+        }
+    },
+    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(1).addClass("on");
+    }
+});

+ 1 - 0
src/main/resources/templates/user-center/message/list.html

@@ -4,6 +4,7 @@
 <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/user-center/message.css(v=${version})}" rel="stylesheet" type="text/css">
 </head>
 <body>

+ 42 - 8
src/main/resources/templates/user-center/operation/form.html

@@ -2,22 +2,56 @@
 <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/user-center/operation/form.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>
+            <span>&gt;</span>
+            <span>添加运营人员</span>
+        </div>
+        <div class="wrap clear mf">
+            <!--左侧面包屑-->
+            <template th:replace="user-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>
+                            <a class="btn-add" href="/user/operation/form.html">添加运营人员</a>
+                        </div>
+                    </div>
+                </div>
+                <div class="container clear">
+                    添加运营人员
+                </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/operation/form.js(v=${version})}"></script>
 </body>
 </html>

+ 10 - 7
src/main/resources/templates/user-center/operation/list.html

@@ -34,8 +34,8 @@
                             </div>
                         </div>
                         <div class="header-button">
-                            <a class="btn-serch" href="javascript: void(0);">搜索</a>
-                            <a class="btn-add" href="javascript: void(0);">添加运营人员</a>
+                            <a class="btn-serch" href="javascript: void(0);" @click="searchOperationFn">搜索</a>
+                            <a class="btn-add" href="/user/operation/form.html">添加运营人员</a>
                         </div>
                     </div>
                 </div>
@@ -61,15 +61,18 @@
                             <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">{{item.invitationCode}}</div>
-                                <div class="td td-4">{{item.effectiveDays > 0 ?'item.effectiveDays'+'天': '- -'}}</div>
-                                <div class="td td-5">{{item.status | stateExp}}</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 href="" v-if="item.status == 1">更新邀请码</a>
-                                    <a href="">删除</a>
+                                    <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>

+ 40 - 0
src/main/resources/templates/user-center/repair/detail.html

@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<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>
+    <template th:replace="components/head-link"></template>
+    <link th:href="@{/css/user-center/repair/detail.css(v=${version})}" rel="stylesheet" type="text/css">
+
+</head>
+<body>
+<!-- 引用头部 -->
+<template th:replace="components/header"></template>
+<!--维修详情-->
+<div id="repairDetailPage">
+    <div class="navLayout" th:object="${pageInfo}">
+        <div class="crumbs">
+            <span>我的交易</span>
+            <span>&gt;</span>
+            <span>我的维修</span>
+            <span>&gt;</span>
+            <span>维修详情</span>
+        </div>
+        <div class="wrap clear mf">
+            <!--左侧面包屑-->
+            <template th:replace="user-center/components/tableft"></template>
+            <div class="right">
+                <div class="container clear">
+
+                </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/repair.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/user-center/repair/detail.js(v=${version})}"></script>
+</body>
+</html>

+ 42 - 29
src/main/resources/templates/user-center/repair/form-user.html

@@ -2,15 +2,16 @@
 <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/user-center/repair/list.css(v=${version})}" rel="stylesheet" type="text/css">
+    <link th:href="@{/css/base/form.css(v=${version})}" rel="stylesheet" type="text/css">
+    <link th:href="@{/css/user-center/repair/form.css(v=${version})}" rel="stylesheet" type="text/css">
 </head>
 <body>
 <!-- 引用头部 -->
 <template th:replace="components/header"></template>
-<!-- 我的订单 -->
-<div id="orderPage" v-cloak>
+<!-- 我的维修 -->
+<div id="addFormPage" v-cloak>
     <div class="navLayout" th:object="${pageInfo}">
         <div class="crumbs">
             <span>我的交易</span>
@@ -23,68 +24,80 @@
             <!--左侧面包屑-->
             <template th:replace="user-center/components/tableft"></template>
             <div class="right">
-                <div class="container">
+                <div class="container clear">
                     <form>
                         <div class="formLine">
                             <p><em>*</em>联系人:</p>
-                            <input type="text" v-model.trim="clubUpgradeUser.contractEmail1" placeholder="请输入邮箱地址" :rule="rule.email" maxlength="32" @blur="blurHandle($event)" needverify>
+                            <input type="text" v-model.trim="form.userContact" placeholder="请输入联系人姓名" :rule="rule.name" maxlength="10" @blur="blurHandle($event)" needverify>
                             <i class="checked icon mIcon"></i>
-                            <span class="errTips icon mIcon" tips="请输入正确的邮箱地址"></span>
+                            <span class="errTips icon mIcon" tips="请输入联系人姓名"></span>
                         </div>
                         <div class="formLine">
                             <p><em>*</em>联系方式:</p>
-                            <input type="text" v-model.trim="clubUpgradeUser.name" placeholder="请与营业执照的注册名称保持一致" :rule="rule.name" maxlength="30" @blur="blurHandle($event)" needverify>
+                            <input type="text" v-model.trim="form.userMobile" placeholder="请输入联系人手机号" :rule="rule.phone" maxlength="11" @blur="blurHandle($event)" needverify>
                             <i class="checked icon mIcon"></i>
-                            <span class="errTips icon mIcon" tips="请输入正确的联系人姓名"></span>
+                            <span class="errTips icon mIcon" tips="请输入正确的手机号"></span>
                         </div>
                         <div class="formLine">
                             <p><em>*</em>联系地址:</p>
                             <div class="address">
-                                <select name="provinceID" id="cProvince" @change="ChangeProvince">
+                                <select name="province" id="province" ref="cProvince" @change="ChangeProvince" v-model="addressfrom.province">
                                     <option value="" >请选择</option>
                                     <option v-for="(item ,index) in ProvinceList" :key="index" :value='item.provinceID' >{{item.name}}</option>
                                 </select>
-                                <select name="cityID" id="cCity" @change="ChangeGetcity($event)" >
+                                <select name="city" id="cCity" @change="ChangeGetcity($event)" v-model="addressfrom.city">
                                     <option value="" >请选择</option>
                                     <option v-for="(item ,index) in cityArray" :key="index" :value="item.cityID" >{{item.name}}</option>
                                 </select>
-                                <select name="townID" id="cTown" @change="ChangeGetcTown($event)">
+                                <select name="town" id="cTown" @change="ChangeGetcTown($event)" v-model="addressfrom.town">
                                     <option value="" >请选择</option>
                                     <option v-for="(item ,index) in townArray" :key="index" :value="item.townID"  >{{item.name}}</option>
                                 </select>
-                                <textarea placeholder="建议您如实填写详细地址,例如:街道名称,门牌号码,楼层和房间号等信息"  v-model="clubUpgradeUser.address"></textarea>
+                                <textarea placeholder="建议您如实填写详细地址,例如:街道名称,门牌号码,楼层和房间号等信息"  v-model="form.userAddress"></textarea>
                             </div>
                             <i class="checked icon mIcon"></i>
                             <span class="errTips icon mIcon" tips="请输入正确的联系地址"></span>
                         </div>
                         <div class="formLine">
                             <p><em>*</em>仪器名称:</p>
-                            <input type="text" v-model.trim="clubUpgradeUser.name" placeholder="请与营业执照的注册名称保持一致" :rule="rule.name" maxlength="30" @blur="blurHandle($event)" needverify>
+                            <input type="text" v-model.trim="form.instrumentName" placeholder="请输入仪器名称" :rule="rule.name" maxlength="30" @blur="blurHandle($event)" needverify>
                             <i class="checked icon mIcon"></i>
-                            <span class="errTips icon mIcon" tips="请输入正确的联系人姓名"></span>
+                            <span class="errTips icon mIcon" tips="请输入仪器名称"></span>
                         </div>
                         <div class="formLine">
                             <p>生产厂家:</p>
-                            <input type="text" v-model.trim="clubUpgradeUser.name" placeholder="请输入生产厂家"  maxlength="30">
+                            <input type="text" v-model.trim="form.manufacturer" placeholder="请输入生产厂家"  maxlength="30">
                         </div>
-                        <div class="formLine">
+                        <div class="formLine file">
                             <p>上传仪器图片:</p>
-                            <div class="release-input upload image"  id="uploadGoodsImages">
-                                <div class="upload-file"  v-for="(item, index) in GoodsImagesList" :key="index"
-                                     draggable="true"
-                                     class="items"
-                                     @dragstart="dragstart(item)"
-                                     @dragenter="dragenter(item)"
-                                     @dragend="dragend(item)"
-                                >
-                                    <img :data-original='item' :src="item" :data-image="item" alt="" class="upload-img" @click="showViewerImageFn($event)">
+                            <div class="upload-image"  id="uploadGoodsImages">
+                                <div class="upload-file"  v-for="(item, index) in form.imagesList" :key="index">
+                                    <img :src="item" alt="" :data-image="item" :id="'uploadGoodsImages'+ index" class="upload-img" @click="showViewerImageFn(index)">
                                     <i class="icon-del" @click="removeGoodsImagesFn(index)"></i>
                                 </div>
-                                <div class="upload-file" v-show="GoodsImagesList.length<5">
-                                    <i class="icon-add"></i>
+                                <div class="upload-file" v-show="form.imagesList.length<5">
+                                    <div class="file-add">
+                                        <i class="icon mIcon"></i>
+                                        <p>添加图片</p>
+                                    </div>
                                     <input ref="goodsImages" type="file" name="file" value="" class="input-file" accept="image/png,image/jpeg,image/gif,image/jpg"  @change="uploadGoodsImagesFn">
                                 </div>
                             </div>
+                            <div class="upload-tips">
+                                <p>请尽量上传仪器全照或者仪器故障图片,方便您的维修事宜</p>
+                                <p>上传jpg/png格式照片,单个照片不能超过5M,最多不超过5张</p>
+                            </div>
+                        </div>
+                        <div class="formLine">
+                            <p><em>*</em>问题描述:</p>
+                            <div class="address mark">
+                                <textarea placeholder="建议您的问题描述..."  v-model="form.problemDescription"></textarea>
+                            </div>
+                            <i class="checked icon mIcon"></i>
+                            <span class="errTips icon mIcon" tips="请输入正确的联系地址"></span>
+                        </div>
+                        <div class="formLine">
+                            <a href="javascript: void(0);" @click="submitData" class="btn" :class="loginLoading ? 'disabled' : ''">提交</a>
                         </div>
                     </form>
                 </div>
@@ -96,6 +109,6 @@
 <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/repair.service.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/user-center/repair/list.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/user-center/repair/form-user.js(v=${version})}"></script>
 </body>
 </html>

+ 12 - 9
src/main/resources/templates/user-center/repair/list.html

@@ -16,7 +16,7 @@
             <span>我的交易</span>
             <span>&gt;</span>
             <span>我的维修</span>
-            <a class="link" href="/user/repair/addform.html">申请维修</a>
+            <a class="link" href="/user/repair/form.html">申请维修</a>
         </div>
         <div class="wrap clear mf">
             <!--左侧面包屑-->
@@ -75,14 +75,17 @@
                         </div>
                         <div class="content">
                             <div class="list" v-for="(item, index) in orderList" :key="index">
-                                <div class="td td-1">2020090901</div>
-                                <div class="td td-2">{{item.clauseName}}</div>
-                                <div class="td td-3">{{item.clauseName}}</div>
-                                <div class="td td-4">{{item.confirmTime}}</div>
-                                <div class="td td-5">{{item.clauseName}}</div>
-                                <div class="td td-6">15817887258</div>
-                                <div class="td td-7">{{item.clauseName}}</div>
-                                <div class="td td-8">{{item.clauseName}}</div>
+                                <div class="td td-1">{{item.orderNo}}</div>
+                                <div class="td td-2">{{item.instrumentName}}</div>
+                                <div class="td td-3">{{item.manufacturer == null ? '- -' : item.manufacturer}}</div>
+                                <div class="td td-4">{{item.submitDate}}</div>
+                                <div class="td td-5">{{item.maintainerName == null ? '- -' : item.maintainerName}}</div>
+                                <div class="td td-6">{{item.maintainerMobile == null ? '- -' : item.maintainerMobile}}</div>
+                                <div class="td td-7" :style="{color: ColorFn(item.status)}">{{item.status | StateExp}}</div>
+                                <div class="td td-8">
+                                    <a class="eva"  href="javascript: void(0);" v-if="['2'].indexOf(item.status)!=-1" @click="detailsFn(item.id)">评价</a>
+                                    <a class="evb" href="javascript: void(0);" v-if="['1','3'].indexOf(item.status)!=-1" @click="detailsFn(item.id)">详情</a>
+                                </div>
                             </div>
                         </div>
                     </div>

+ 191 - 8
src/main/resources/templates/user-center/setting/information.html

@@ -2,22 +2,205 @@
 <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/information.css(v=${version})}" rel="stylesheet" type="text/css">
 </head>
 <body>
 <!-- 引用头部 -->
 <template th:replace="components/header"></template>
-
-<!-- 我的采美 -->
-<div>
-
+<!-- 修改资料 -->
+<div id="informationPage" v-cloak>
+    <div class="navLayout" th:object="${pageInfo}">
+        <div class="crumbs">
+            <span>机构管理中心</span>
+            <span>&gt;</span>
+            <span>修改资料</span>
+        </div>
+        <div class="wrap clear mf">
+            <!--左侧面包屑-->
+            <template th:replace="user-center/components/tableft"></template>
+            <div class="right">
+                <!--loading-->
+                <div v-if="isRequset" class="loading">
+                    <img src="/img/base/loading.gif">
+                </div>
+                <div class="container clear">
+                    <form>
+                        <div class="title">注册信息</div>
+                        <div class="formLine">
+                            <p><em>*</em>联系人:</p>
+                            <input type="text" v-model.trim="clubUpgradeUser.name" placeholder="请输入联系人姓名" :rule="rule.name" maxlength="6" @blur="blurHandle($event)" needverify>
+                            <i class="checked icon mIcon"></i>
+                            <span class="errTips icon mIcon" tips="请输入正确的联系人姓名"></span>
+                        </div>
+                        <div class="formLine">
+                            <p><em>*</em>手机号:<span>15888888888</span></p>
+                        </div>
+                        <div class="title">升级信息</div>
+                        <div class="formLine">
+                            <p><em>*</em>机构名称:</p>
+                            <input type="text" v-model.trim="clubUpgradeUser.name" placeholder="请与营业执照的注册名称保持一致" :rule="rule.name" maxlength="30" @blur="blurHandle($event)" needverify>
+                            <i class="checked icon mIcon"></i>
+                            <span class="errTips icon mIcon" tips="请输入正确的联系人姓名"></span>
+                        </div>
+                        <div class="formLine">
+                            <p><em>*</em>邮箱:</p>
+                            <input type="text" v-model.trim="clubUpgradeUser.contractEmail1" placeholder="请输入邮箱地址" :rule="rule.email" maxlength="32" @blur="blurHandle($event)" needverify>
+                            <i class="checked icon mIcon"></i>
+                            <span class="errTips icon mIcon" tips="请输入正确的邮箱地址"></span>
+                        </div>
+                        <div class="formLine">
+                            <p>机构简称:</p>
+                            <input type="text" v-model.trim="clubUpgradeUser.sname" placeholder="请输入机构简称" maxlength="10" >
+                        </div>
+                        <div class="formLine">
+                            <p><em>*</em>联系地址:</p>
+                            <div class="address">
+                                <select name="provinceID" id="cProvince" @change="ChangeProvince" v-model="addressfrom.provinceID">
+                                    <option value="" >请选择</option>
+                                    <option v-for="(item ,index) in ProvinceList" :key="index" :value='item.provinceID' >{{item.name}}</option>
+                                </select>
+                                <select name="cityID" id="cCity" @change="ChangeGetcity($event)" v-model="addressfrom.cityID">
+                                    <option value="" >请选择</option>
+                                    <option v-for="(item ,index) in cityArray" :key="index" :value="item.cityID" >{{item.name}}</option>
+                                </select>
+                                <select name="townID" id="cTown" @change="ChangeGetcTown($event)" v-model="addressfrom.townID">
+                                    <option value="" >请选择</option>
+                                    <option v-for="(item ,index) in townArray" :key="index" :value="item.townID"  >{{item.name}}</option>
+                                </select>
+                                <textarea placeholder="建议您如实填写详细地址,例如:街道名称,门牌号码,楼层和房间号等信息"  v-model="clubUpgradeUser.address"></textarea>
+                            </div>
+                            <i class="checked icon mIcon"></i>
+                            <span class="errTips icon mIcon" tips="请输入正确的联系地址"></span>
+                        </div>
+                        <div class="formLine">
+                            <p>营业执照编号:</p>
+                            <input type="text" v-model.trim="clubUpgradeUser.socialCreditCode" placeholder="请输入统一社会信用代码" maxlength="18">
+                        </div>
+                        <div class="formLine clear">
+                            <div class="form-upload">
+                                <p><em>*</em>营业执照图片:</p>
+                                <div class="form-upload-image" v-if="clubUpgradeUser.businessLicenseImage!=''">
+                                    <img class="upload-img" :src="clubUpgradeUser.businessLicenseImage" alt="" id="businessLicenseImage" @click="showViewerImageFn()">
+                                    <i class="icon mIcon" @click="deleteBusinessImage()"></i>
+                                </div>
+                                <div class="formLine-file" v-else>
+                                    <input ref="businessLicenseImage" class="file" type="file" accept="image/png,image/jpeg,image/gif,image/jpg"  @change="uploadBusinessLicenseImageFn">
+                                    <i class="icon mIcon file-biss"></i>
+                                </div>
+                                <span class="errTips icon mIcon"></span>
+                            </div>
+                            <div class="form-upload-tips">
+                                <i class="icon mIcon icon-wen"></i>
+                                <div class="wen-tips">点击图片可放大图片</div>
+                            </div>
+                        </div>
+                        <div class="formLine clear">
+                            <div class="form-upload">
+                                <p>门头照:</p>
+                                <div class="form-upload-image" v-if="clubUpgradeUser.headpic!=''">
+                                    <img class="upload-img" :src="clubUpgradeUser.headpic" alt="" id="uploadMentuzImage" @click="showViewerImageFn1()">
+                                    <i class="icon mIcon" @click="deleteMentuzImage()"></i>
+                                </div>
+                                <div class="formLine-file" v-else>
+                                    <input ref="businessMentuImage" class="file" type="file" accept="image/png,image/jpeg,image/gif,image/jpg"  @change="uploadMentuzImageFn">
+                                    <i class="icon mIcon file-door"></i>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="formLine">
+                            <p><em>*</em>机构类型:</p>
+                            <label class="diyBox"><input type="radio" name="firstShopType" v-model="clubUpgradeUser.firstClubType" value="0" ><i class="icon mIcon">医美</i></label>
+                            <label class="diyBox"><input type="radio" name="firstShopType" v-model="clubUpgradeUser.firstClubType" value="1" checked><i class="icon mIcon">生美</i></label>
+                            <span class="errTips icon mIcon" tips="请选择公司类型"></span>
+                        </div>
+                        <div v-show="clubUpgradeUser.firstClubType == 0" class="formLine">
+                            <label class="diyBox second"><input type="radio" name="secondClubType" v-model="clubUpgradeUser.secondClubType" value="1" checked><i class="icon mIcon">诊所</i></label>
+                            <label class="diyBox second"><input type="radio" name="secondClubType" v-model="clubUpgradeUser.secondClubType" value="2" ><i class="icon mIcon">门诊</i></label>
+                            <label class="diyBox second"><input type="radio" name="secondClubType" v-model="clubUpgradeUser.secondClubType" value="3" ><i class="icon mIcon">医院</i></label>
+                            <span class="errTips icon mIcon" tips="请选择公司类型"></span>
+                        </div>
+                        <div v-show="clubUpgradeUser.firstClubType == 0" class="formLine">
+                            <div class="form-upload">
+                                <p>资质:</p>
+                                <div class="form-upload-image" v-if="clubUpgradeUser.medicalPracticeLicenseImg!=''">
+                                    <img class="upload-img" :src="clubUpgradeUser.medicalPracticeLicenseImg" alt="" id="medicalPracticeLicenseImg" @click="showViewerImageFn2()">
+                                    <i class="icon mIcon" @click="deleteMedicalImage()"></i>
+                                </div>
+                                <div class="formLine-file" v-else>
+                                    <input ref="businessMedicaImage" class="file" type="file"  accept="image/png,image/jpeg,image/gif,image/jpg" @change="uploadMedicaImageFn">
+                                    <i class="icon mIcon file-zizhi"></i>
+                                </div>
+                                <span class="errTips icon mIcon"></span>
+                            </div>
+                            <div class="form-upload-tips">
+                                <i class="icon icon-wen"></i>
+                                <div class="wen-tips">点击图片可放大图片</div>
+                            </div>
+                        </div>
+                        <div v-if="clubUpgradeUser.secondClubType == 2 || clubUpgradeUser.secondClubType == 3" class="formLine">
+                            <p>科室:</p>
+                            <input type="text" v-model.trim="clubUpgradeUser.department" placeholder="请填写您所经营的科室,用逗号隔开.(至少三个)" maxlength="50">
+                        </div>
+                        <div class="formLine clear" v-if="clubUpgradeUser.firstClubType == 0">
+                            <p><em>*</em>主营内容:</p>
+                            <p class="business clear">
+                                <label v-for="pro in mentuzCampNullList" class="diyBox second" >
+                                    <input type="checkbox" name="secondClubType" v-model="userMainPros" :value="pro.name" >
+                                    <i class="icon mIcon">{{pro.name}}</i>
+                                </label>
+                            </p>
+                            <p class="business">
+                                <input type="text" placeholder="请输入其他自定义品项目" v-model.trim="mainProEdit">
+                                <a href="javascript:void(0);" @click="mainProAdd()">确认添加</a>
+                            </p>
+                            <span class="errTips icon mIcon" tips="请选择或添加主营产品"></span>
+                        </div>
+                        <div class="formLine clear" v-if="clubUpgradeUser.firstClubType == 1">
+                            <p><em>*</em>主营内容:</p>
+                            <p class="business clear">
+                                <label v-for="pro in medicaCampNullList" class="diyBox second">
+                                    <input type="checkbox" name="secondClubType" v-model="userMainPros" :value="pro.name" >
+                                    <i class="icon mIcon">{{pro.name}}</i>
+                                </label>
+                            </p>
+                            <p class="business">
+                                <input type="text" placeholder="请输入其他自定义品项目" v-model.trim="mainProEdit">
+                                <a href="javascript:void(0);" @click="mainProAdd()">确认添加</a>
+                            </p>
+                            <span class="errTips icon mIcon" tips="请选择或添加主营产品"></span>
+                        </div>
+                        <div class="title">其他信息</div>
+                        <div class="formLine">
+                            <p>固定电话:</p>
+                            <input type="text" v-model.trim="clubUpgradeUser.name" placeholder="请输入公司的固定电话" maxlength="12">
+                        </div>
+                        <div class="formLine">
+                            <p>传真:</p>
+                            <input type="text" v-model.trim="clubUpgradeUser.name" placeholder="请输入公司的传真" maxlength="12">
+                        </div>
+                        <div class="formLine">
+                            <p>公司介绍:</p>
+                            <div class="address">
+                                <textarea placeholder="请输入公司的简介,最多500字!" maxlength="500"  v-model="clubUpgradeUser.address"></textarea>
+                            </div>
+                        </div>
+                        <div class="subLine">
+                            <button class="btn-upgrade" :class="loginLoading ? 'disabled':''" type="button" @click="clubUpgrade()">保存并提交</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/user.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/user-center/setting/information.js(v=${version})}"></script>
 </body>
 </html>

+ 23 - 8
src/main/resources/templates/user-center/setting/password.html

@@ -2,22 +2,37 @@
 <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/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 mf">
+            <!--左侧面包屑-->
+            <template th:replace="user-center/components/tableft"></template>
+            <div class="right">
+                <div class="container clear">
+                    重置密码
+                </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>

+ 23 - 8
src/main/resources/templates/user-center/setting/phone.html

@@ -2,22 +2,37 @@
 <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/center.css(v=${version})}" rel="stylesheet" type="text/css">
+    <link th:href="@{/css/user-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 mf">
+            <!--左侧面包屑-->
+            <template th:replace="user-center/components/tableft"></template>
+            <div class="right">
+                <div class="container clear">
+                   更换手机号
+                </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/phone.js(v=${version})}"></script>
 </body>
 </html>