Browse Source

Merge remote-tracking branch 'origin/developerA' into developer

zhengjinyi 1 năm trước cách đây
mục cha
commit
932738fd77
36 tập tin đã thay đổi với 2169 bổ sung45 xóa
  1. 9 0
      src/main/java/com/caimei/www/controller/authorized/AccountController.java
  2. 25 0
      src/main/java/com/caimei/www/controller/authorized/supplier/SupplierPageController.java
  3. 1 1
      src/main/resources/config/dev/application-dev.yml
  4. 23 0
      src/main/resources/static/css/account/login-fast.css
  5. 10 0
      src/main/resources/static/css/supplier-center/order/detail.css
  6. 104 0
      src/main/resources/static/css/supplier-center/order/order-create.css
  7. 2 0
      src/main/resources/static/css/supplier-center/order/order-edit.css
  8. 185 0
      src/main/resources/static/css/supplier-center/order/order-share-detail.css
  9. 17 0
      src/main/resources/static/css/supplier-center/order/order-share-login.css
  10. 16 6
      src/main/resources/static/css/supplier-center/order/orderlist.css
  11. BIN
      src/main/resources/static/img/supplier/icon-lg-h5Login.png
  12. BIN
      src/main/resources/static/img/supplier/icon-lg-pcLogin.png
  13. 96 0
      src/main/resources/static/js/account/login-fast.js
  14. 6 3
      src/main/resources/static/js/account/login.js
  15. 7 2
      src/main/resources/static/js/base.js
  16. 105 0
      src/main/resources/static/js/common/serviceapi/supplier.service.js
  17. 24 0
      src/main/resources/static/js/common/serviceapi/user.service.js
  18. 1 1
      src/main/resources/static/js/shopping/confirm.js
  19. 67 1
      src/main/resources/static/js/supplier-center/order/detail.js
  20. 460 0
      src/main/resources/static/js/supplier-center/order/order-create.js
  21. 5 0
      src/main/resources/static/js/supplier-center/order/order-edit.js
  22. 168 0
      src/main/resources/static/js/supplier-center/order/order-share-detail.js
  23. 50 0
      src/main/resources/static/js/supplier-center/order/order-share-login.js
  24. 64 0
      src/main/resources/static/js/supplier-center/order/orderlist.js
  25. 2 2
      src/main/resources/static/js/supplier/index.js
  26. 26 0
      src/main/resources/templates/account/login-fast.html
  27. 3 3
      src/main/resources/templates/components/header.html
  28. 0 9
      src/main/resources/templates/shopping/confirm.html
  29. 1 0
      src/main/resources/templates/supplier-center/components/tableft.html
  30. 26 6
      src/main/resources/templates/supplier-center/order/detail.html
  31. 34 6
      src/main/resources/templates/supplier-center/order/list.html
  32. 422 0
      src/main/resources/templates/supplier-center/order/order-create.html
  33. 24 3
      src/main/resources/templates/supplier-center/order/order-edit.html
  34. 2 2
      src/main/resources/templates/supplier-center/order/order-return.html
  35. 145 0
      src/main/resources/templates/supplier-center/order/order-share-details.html
  36. 39 0
      src/main/resources/templates/supplier-center/order/order-share-login.html

+ 9 - 0
src/main/java/com/caimei/www/controller/authorized/AccountController.java

@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 public class AccountController extends BaseController {
     /** 登录 */
 	private static final String LOGIN_PATH = "account/login";
+	private static final String LOGIN_FAST = "account/login-fast";
     private static final String SUPPLIER_LOGIN_PATH = "account/supplierTologin";
     private static final String REGISTER_SUPPLIER_LOGIN = "supplier_login/index";
     private static final String REGISTER_SUPPLIER_LOGIN_TEXTINFO = "supplier_login/text_info";
@@ -40,6 +41,14 @@ public class AccountController extends BaseController {
         return LOGIN_PATH;
     }
 
+    /**
+     * 供应商快捷登录
+     */
+    @GetMapping("/login-fast.html")
+    public String loginFast() {
+        return LOGIN_FAST;
+    }
+
     /**
      * supplier登录页
      */

+ 25 - 0
src/main/java/com/caimei/www/controller/authorized/supplier/SupplierPageController.java

@@ -14,6 +14,8 @@ import org.springframework.web.bind.annotation.GetMapping;
 public class SupplierPageController extends BaseController {
     /** 我的采美 */
 	private static final String DASHBOARD = "supplier-center/dashboard";
+    /** 帮机构下单 */
+	private static final String ORDER_CREATE = "supplier-center/order/order-create";
     /** 订单列表 */
 	private static final String ORDER_LIST = "supplier-center/order/list";
     /** 订单详情 */
@@ -46,6 +48,10 @@ public class SupplierPageController extends BaseController {
 	private static final String ORDER_RETURN = "supplier-center/order/order-return";
     /** 编辑订单 */
 	private static final String ORDER_EDIT = "supplier-center/order/order-edit";
+    /** 编辑订单 */
+	private static final String ORDER_SHARE_DETAILS = "supplier-center/order/order-share-details";
+    /** 编辑订单 */
+	private static final String ORDER_SHARE_LOGIN= "supplier-center/order/order-share-login";
     /** 员工管理 */
 	private static final String OPERATION_LIST = "supplier-center/operation/list";
     /** 添加/编辑员工 */
@@ -103,6 +109,12 @@ public class SupplierPageController extends BaseController {
         return DASHBOARD;
     }
 
+    /** 创建订单 */
+    @GetMapping("/supplier/order/order-create.html")
+    public String orderCreate() {
+        return ORDER_CREATE;
+    }
+
     /** 订单列表 */
     @GetMapping("/supplier/order/list.html")
     public String orderList() {
@@ -133,6 +145,18 @@ public class SupplierPageController extends BaseController {
         return LOGISTICS_DETAIL;
     }
 
+    /** 分享登录 */
+    @GetMapping("/order-share-login.html")
+    public String orderShareLogin() {
+        return ORDER_SHARE_LOGIN;
+    }
+
+    /** 分享查看订单 */
+    @GetMapping("/order-share-details.html")
+    public String orderShareDetails() {
+        return ORDER_SHARE_DETAILS;
+    }
+
     /** 商品资质详情 */
     @GetMapping("/supplier/order/qualifications/detail.html")
     public String qualificationsDetail() {
@@ -191,6 +215,7 @@ public class SupplierPageController extends BaseController {
     public String orderReturn() {
         return ORDER_RETURN;
     }
+
     /** 修改订单 */
     @GetMapping("/supplier/order/order-edit.html")
     public String orderEdit() {

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

@@ -57,7 +57,7 @@ caimei:
   coreServer: https://core-b.caimei365.com
   #coreServer: http://192.168.2.67:18002
   #coreServer: http://192.168.2.17:18002
-  #coreServer: http://192.168.2.103:18002
+#  coreServer: http://192.168.2.102:18002
   imageDomain: https://img-b.caimei365.com
   wwwDomain: http://localhost:8009
   destPath: classpath:/

+ 23 - 0
src/main/resources/static/css/account/login-fast.css

@@ -0,0 +1,23 @@
+@charset "utf-8";
+li{list-style:none}
+.toLogin{display:none;}
+/**
+ * PC端
+ */
+@media screen and (min-width:768px){
+ header{ display: none;}
+ footer .footTop{display:none;}
+ body{background: #FFFFFF;}
+ .loginWrap{width:1200px;height:600px;overflow:hidden;margin:80px auto;box-sizing:border-box;background: #FFFFFF; border-radius:2px;padding: 40px 88px;}
+ footer{display:none}
+}
+
+/**
+* 移动端
+*/
+@media screen and (max-width:768px){
+ header{ display: none;}
+ body{background:#FFF}
+ .loginWrap{width:100%;height:100%;overflow:hidden;box-sizing:border-box;background: #FFFFFF;}
+ footer{display:none}
+}

+ 10 - 0
src/main/resources/static/css/supplier-center/order/detail.css

@@ -7,6 +7,7 @@
     .userinfo .user p span {color: #22272e;}
     .address {margin-bottom: 15px;color: #627386;}
     .address span {color: #22272e;}
+    .order-tips{ padding: 0 20px;background: #FFECEC;line-height: 40px;font-size: 14px;color: #F94B4B;}
     .product-info {margin-top: 20px;}
     .price {overflow: hidden;}
     .protitle {color: #22272e;font-size: 16px;padding: 15px;float: left;}
@@ -55,6 +56,10 @@
     .section-botton .inner .btn {width: 90px;height: 36px;background-color: #ffe6dc;border-radius: 2px;border: solid 1px #FF5B00;text-align: center;line-height: 36px;color: #FF5B00;display: inline-block;margin-right: 16px;float: right;}
     .section-botton.fiexd {position: fixed;bottom: 0;right: 0;}
     .section-botton.fiexd .inner {width: 1184px;margin: 0 auto;z-index: 9999;}
+    .el-dialog-p{font-size: 14px;color: #22272E;line-height: 24px;margin-bottom: 10px;}
+    .el-dialog-red{font-size: 12px;color: #F94B4B;line-height: 24px;margin-top: 30px;}
+    .el-dialog-h1{font-size: 16px;color: #22272E;line-height: 24px;}
+    .el-dialog-h1 span{color: #FF5B00;}
 }
 
 
@@ -72,6 +77,7 @@
     .userinfo .user p span {color: #22272e;}
     .address {margin-bottom: 4vw;color: #627386;}
     .address span {color: #22272e;}
+    .order-tips{ padding:3vw;background: #FFECEC;line-height: 6vw;font-size: 14px;color: #F94B4B;}
     .product-info {margin-top: 4vw;background: #fff;padding-bottom: 18vw;}
     .price {overflow: hidden;}
     .protitle {color: #22272e;font-size: 3.4vw;padding: 4vw;float: left}
@@ -112,5 +118,9 @@
     .section-botton {width: 100%;height: 15.6vw;box-sizing: border-box;padding: 3vw;background-color: #FFFFFF;position: fixed;bottom: 0;right: 0;}
     .section-botton.inner {width: 100%;}
     .section-botton .inner .btn {float: right;box-sizing: border-box;width: 22.4vw;height: 9.6vw;background-color: #ffe6dc;border-radius: .53vw;border: solid .27vw #FF5B00;text-align: center;line-height: 9.6vw;color: #FF5B00;display: inline-block;margin-left:3vw; }
+    .el-dialog-p{font-size: 14px;color: #22272E;line-height: 24px;margin-bottom: 10px;}
+    .el-dialog-red{font-size: 12px;color: #F94B4B;line-height: 24px;margin-top: 30px;}
+    .el-dialog-h1{font-size: 16px;color: #22272E;line-height: 24px;}
+    .el-dialog-h1 span{color: #FF5B00;}
     footer{display: none;}
 }

+ 104 - 0
src/main/resources/static/css/supplier-center/order/order-create.css

@@ -0,0 +1,104 @@
+@media screen and (min-width:768px) {
+    table, td, th{border: none;}
+    .crumbs {font-size: 16px;color: #22272e;padding-left: 216px;}
+    .order-title{ box-sizing: border-box;padding: 10px 0; }
+    .order-title p{ font-size: 16px;color: #22272E; }
+    .order-address-form{ width: 100%;height: auto;padding: 16px 16px 10px 16px;box-sizing: border-box;background: #FFFFFF; }
+    .order-product-form { width: 100%;height: auto;padding:0 16px 16px 16px;box-sizing: border-box;background: #FFFFFF;}
+    .order-product-form .cartTit{height:50px;line-height:50px;border-bottom: 1px solid #E2E7EF;text-align: center;}
+    .order-product-form .c1{float:left;width:300px;height:100%;position:relative;}
+    .order-product-form .c2{float:left;width:150px}
+    .order-product-form .c3{float:left;width:200px}
+    .order-product-form .c4{float:left;width:80px}
+    .order-product-form .c5{float:left;width:200px;position:relative}
+    .order-product-none { text-align: center;width: 100%;height: 122px;padding: 25px 0;box-sizing: border-box;}
+    .order-product-none p{ line-height: 36px;font-size: 14px;color: #9AA5B5;}
+    .order-product-main{width: 100%;height: auto;box-sizing: border-box;padding: 10px 0; }
+    .order-product-item{width: 100%;height: 80px;text-align: center;line-height: 80px;position: relative;padding: 10px 0;}
+    .order-product-item .item-delete{width: 80px;height: 80px;text-align: center;line-height: 80px;position: absolute;right: -20px;}
+    .order-product-item .item-delete .el-icon-close{font-size: 16px;color: #333333;cursor: pointer;}
+    .order-product-item .product-img{width: 80px;height: 80px;float: left;box-sizing: border-box;border: 1px solid #e1e1e1;}
+    .order-product-item .product-img img{width: 80px;height: 80px;}
+    .order-product-item .product-name{width: 220px;height: 80px;float: left;box-sizing: border-box;padding: 20px 0}
+    .order-product-item .product-name p{line-height: 20px; font-size: 12px;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;overflow: hidden;}
+    .order-product-total{width: 100%;height: 58px;box-sizing: border-box;padding-top: 16px;border-top: 1px solid #E1E1E1; }
+    .order-product-total .order-product-note{float: left;width: 70%;height: 100%;line-height: 42px;font-size: 16px;color: #22272E;}
+    .order-product-total .order-product-note .el-input{width: 480px !important; }
+    .order-product-total .order-product-price{float: right;width: 30%;height: 100%;line-height: 42px;}
+    .order-product-total .order-totalPrice{float: right;font-size: 16px;color: #22272E;margin-right: 20px;}
+    .order-product-total .freight{float: left;}
+    .order-product-total .order-totalPrice .red{color: #F94B4B;}
+    .freight-radio{ width: 100%;height: 28px;line-height: 28px;float: left;margin-bottom: 10px;}
+    .order-product-bsn { width: 100%;height: auto;padding:0 16px 16px 16px;box-sizing: border-box;background: #FFFFFF;margin-top: 16px;}
+    .order-product-add { text-align: center;width: 100%;height: 60px;padding: 20px 0 0 0;box-sizing: border-box;}
+    .order-product-add span{ margin: 0 5px;}
+    .order-invoice-form{ width: 100%;height: auto;padding: 16px;box-sizing: border-box;background: #FFFFFF; }
+    .order-invoice-radio{ width: 100%;height: 36px;line-height: 36px;margin: 5px 0;}
+    .order-el-confirm{width: 100%;text-align: right;box-sizing: border-box;padding: 20px;background: #FFFFFF;float: left;margin-top: 20px;}
+    .order-el-confirm.fiexd {position: fixed;bottom: 0;right: 0;}
+    .order-el-confirm.fiexd .inner {width: 1184px;margin: 0 auto;z-index: 9999;}
+    /*  el-dialog 样式  */
+    .filter-container { padding-bottom: 10px; }
+    .filter-item { display: inline-block;vertical-align: middle; margin-bottom: 10px;}
+    .filter-control {display: inline-block;margin-bottom: 10px;margin-right: 10px;}
+    .filter-control>span,.filter-control>.el-input{ display: inline-block;vertical-align: middle;}
+    .filter-control>span { margin-right: 10px; font-size: 14px;color: #606266;}
+    .filter-control>.el-input{  width: 200px;}
+    .filter-control>.el-select{  width: 200px;}
+}
+
+
+/*移动*/
+@media screen and (max-width:768px) {
+    table, td, th{border: none;}
+    .right{padding-bottom: 20vw;}
+    .crumbs {font-size: 16px;color: #22272e;padding-left: 216px;}
+    .order-title{ box-sizing: border-box;padding: 2vw; }
+    .order-title p{ font-size: 16px;color: #22272E; }
+    .order-address-form{ width: 100%;height: auto;padding: 16px 16px 10px 16px;box-sizing: border-box;background: #FFFFFF; }
+    .order-product-form { width: 100%;height: auto;padding:0 16px 16px 16px;box-sizing: border-box;background: #FFFFFF;}
+    .order-product-form .cartTit{height:50px;line-height:50px;border-bottom: 1px solid #E2E7EF;text-align: center;}
+    .order-product-form .c1{float:left;width:100%;height:100%;position:relative;}
+    .order-product-form .c2{float:left;width:25%;line-height: 10vw;text-align: left;}
+    .order-product-form .c3{float:left;width:25%;line-height: 10vw;color: #F94B4B;text-align: left;}
+    .order-product-form .c4{float:left;width:25%;line-height: 10vw;text-align: left;}
+    .order-product-form .c5{float:left;width:25%;line-height: 10vw;position:relative;color: #F94B4B;text-align: left;}
+    .order-product-item .tit{color: #22272E;line-height: 6vw;}
+    .order-product-none { text-align: center;width: 100%;height: 122px;padding: 25px 0;box-sizing: border-box;}
+    .order-product-none p{ line-height: 36px;font-size: 14px;color: #9AA5B5;}
+    .order-product-main{width: 100%;height: auto;box-sizing: border-box;padding: 10px 0;float: left; }
+    .order-product-item{width: 100%;height: auto;text-align: center;position: relative;padding: 3vw 0 0 0;float: left;border-bottom: 1px solid #e1e1e1;}
+    .order-product-item:last-child{border-bottom: none;}
+    .order-product-item .item-delete{width: 8vw;height: 8vw;text-align: center;line-height: 8vw;position: absolute;right: 0;top: 0;}
+    .order-product-item .item-delete .el-icon-close{font-size: 16px;color: #F94B4B;cursor: pointer;}
+    .order-product-item .product-img{width: 18vw;height: 18vw;float: left;box-sizing: border-box;border: 1px solid #e1e1e1;}
+    .order-product-item .product-img img{width:17vw;height: 17vw;}
+    .order-product-item .product-name{width: 220px;height: 80px;float: left;box-sizing: border-box;padding: 20px 0;padding-left: 5vw;}
+    .order-product-item .product-name p{line-height: 20px; font-size: 3.4vw;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;overflow: hidden;text-align: left;}
+    .order-product-total{width: 100%;height: auto;box-sizing: border-box;padding-top: 0vw;border-top: 1px solid #E1E1E1;float: left; }
+    .order-product-total .order-product-note{float: left;width:100%;height: 16vw;line-height:16vw;font-size: 3.4vw;color: #22272E;}
+    .order-product-total .order-product-note .el-input{width: 80vw !important; }
+    .order-product-total .order-product-price{float: left;width: 100%;height: 100%;line-height: 42px;}
+    .order-product-total .order-product-price .freight{float: left;}
+    .order-product-total .order-totalPrice{float: right;font-size: 16px;color: #22272E;}
+    .order-product-total .order-totalPrice .red{color: #F94B4B;}
+    .freight-radio{ width: 100%;height: 28px;line-height: 28px;float: left;margin-bottom: 10px;}
+    .order-product-bsn { width: 100%;height: auto;padding:0 16px 16px 16px;box-sizing: border-box;background: #FFFFFF;margin-top: 16px;}
+    .order-product-add { text-align: center;width: 100%;height: 60px;padding: 20px 0 0 0;box-sizing: border-box;}
+    .order-product-add span{ margin: 0 5px;}
+    .order-invoice-form{ width: 100%;height: auto;padding: 16px;box-sizing: border-box;background: #FFFFFF; }
+    .order-invoice-radio{ width: 100%;height: 36px;line-height: 36px;margin: 5px 0;}
+    .order-el-confirm{width: 100%;text-align: right;box-sizing: border-box;padding: 2vw;background: #FFFFFF;float: left;margin-top: 0;}
+    .order-el-confirm {position: fixed;bottom: 0;right: 0;}
+    .order-el-confirm .inner {width: 100%;margin: 0 auto;z-index: 9999;}
+    /*  el-dialog 样式  */
+    .filter-container { padding-bottom: 10px; }
+    .filter-item { display: inline-block;vertical-align: middle; margin-bottom: 10px;}
+    .filter-control {display: inline-block;margin-bottom: 10px;margin-right: 10px;}
+    .filter-control>span,.filter-control>.el-input{ display: inline-block;vertical-align: middle;}
+    .filter-control>span { margin-right: 10px; font-size: 14px;color: #606266;}
+    .filter-control>.el-input{  width: 200px;}
+    .filter-control>.el-select{  width: 200px;}
+    footer{display: none;}
+
+}

+ 2 - 0
src/main/resources/static/css/supplier-center/order/order-edit.css

@@ -1,4 +1,5 @@
 @media screen and (min-width:768px) {
+    table, td, th{border: none;}
     .crumbs {font-size: 16px;color: #22272e}
     .userinfo {padding: 5px 20px;background: #fff;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);}
     .info {height: 56px;line-height: 56px;border-bottom: solid 1px #e2e7ef;font-size: 16px;color: #22272e;overflow: hidden}
@@ -52,6 +53,7 @@
 
 /*移动*/
 @media screen and (max-width:768px) {
+    table, td, th{border: none;}
     .wrap_tittle {height: 10.6vw;line-height: 10.6vw;background: #fff;padding: 0 2.7vw;font-size: 3.4vw;color: #22272e;border-bottom: solid .27vw #e2e7ef;}
     .mIcon.wrap_tittle:before {width: 6.7vw;height: 6.7vw;background-position: -50.7vw -51.5vw;position: absolute;top: 28vw;}
     .mIcon.open:before {width: 10.6vw;height: 11.2vw;float: right;background-position: -48.8vw 2.7vw;}

+ 185 - 0
src/main/resources/static/css/supplier-center/order/order-share-detail.css

@@ -0,0 +1,185 @@
+@charset "utf-8";
+li{list-style:none}
+/**
+ * PC端
+ */
+@media screen and (min-width:768px){
+    /*订单详情顶部信息*/
+    .crumbs{padding-left: 110px;}
+    #globalHead{display: none;}
+    .navLayout{min-height: auto;}
+    .navLayout .content-main{width:968px;margin: 0 auto;}
+    .order-container{width: 100%;min-height:410px;}
+    .order-container .title{width: 100%;height: 44px;line-height: 44px;font-size: 16px;text-align: left;color: #22272e;}
+    .order-container .title a{display: block;float: right;position: relative;padding-right: 36px;position: relative;}
+    .order-container .title a .icon{display: block;width: 18px;height: 18px;position: absolute;top: 5px;right: 10px;}
+    .order-container .title a .icon:before{width: 18px;height: 18px;background-position: -304px -32px;}
+    .order-container .section{width: 100%;height: auto;}
+    .order-container .section .section-info {margin-bottom: 8px;box-sizing:border-box;padding:10px 20px;background-color: #FFFFFF;}
+    .order-container .section .section-info .order-title{width:100%;box-sizing:border-box;height:40px;position:relative;margin-bottom: 0;}
+    .order-container .section .section-info .order-title .bag{display: block;position: absolute;left:0;top: 12px; width: 36px;height: 16px;background-image: linear-gradient(335deg,#FF5B00 0%,#ffb496 100%);border-radius: 2px;font-size: 10px;color: #FFFFFF;line-height: 16px;text-align: center;}
+    .order-container .section .section-info .order-title .title-name{line-height:  40px;font-size: 14px;color: #22272e;}
+    .order-container .section .section-info .order-title .title-name p{display:inline-block;margin-right:10px;}
+    .order-container .section .section-info .order-title .title-name p.state{color: #FF5B00;margin-left: 10px;font-weight: normal;}
+    .order-container .section .section-info .order-title .title-type{float:right;width:40px;height: 40px;background: url("/img/order/second.png")center center no-repeat;background-size: cover;}
+    .order-container .section .section-info .order-title .title-time{position:absolute;right:0;top:0;line-height:40px;font-size: 12px;color: #9aa5b5;}
+    .order-container .section .section-info .order-content{width:100%;height:auto;}
+    .order-container .section .section-info .order-content .order-item{width:100%;}
+    .order-container .section .section-info .order-content .order-item p{display:inline-block;margin-right:45px;line-height: 36px;color: #627386;font-size: 14px;}
+    .order-container .section .section-info .order-content .order-item p.org{}
+    .order-container .section .section-info .order-content .order-item p.copy{margin-left:20px;width: 56px;height: 24px;background-image: linear-gradient(214deg, #ff2929 0%, #ff6d1b 100%);border-radius: 2px;line-height: 24px;text-align: center;font-size: 12px;color: #FFF;margin-top: 6px;cursor: pointer;}
+    .order-container .section .section-info .order-content .order-item p span{margin-left: 5px;}
+    .order-container .section .section-info .order-content .order-item p .red{color: #f94b4b;}
+    .order-container .section .section-info .order-content .order-item p .org{color: #FF5B00;}
+    .order-container .section .section-info .order-content .order-item p .none{color:#22272e;}
+    /*商品信息*/
+    .order-container .section-list{margin-bottom: 10px;width: 100%;height: auto;box-sizing:border-box;}
+    .order-container .section-shopinfo{width: 100%;height: auto;margin-bottom: 5px;box-sizing: border-box;padding: 0;background-color: #FFFFFF;}
+    .order-container .section-shopinfo .title{width: 100%;height: 56px;box-sizing: border-box;padding: 8px 20px;border-bottom: 1px solid #e2e7ef;}
+    .order-container .section-shopinfo .title .logo{width: 39px;height: 39px;box-sizing: border-box;border: 1px solid #e2e7ef;float: left;display: block;margin-right: 5px;}
+    .order-container .section-shopinfo .title .name{line-height: 40px;float: left;font-size: 14px;color: #22272E;text-align: left;margin-right: 20px;}
+    .order-container .section-shopinfo .product{width: 100%;height: auto;box-sizing: border-box;padding: 0 20px;}
+    .order-container .section-shopinfo .section-prosinfo{width: 100%;height: 126px;padding: 16px 0 0;}
+    .order-container .section-shopinfo .product-t{width: 100%;min-height: 100px;float: left;}
+    .order-container .section-shopinfo .product-t .image{width: 98px;height: 98px;float: left;border: 1px solid #e2e7ef;margin-right: 10px;position: relative;}
+    .order-container .section-shopinfo .product-t .image img{width: 98px;height: 98px;display: block;}
+    .order-container .section-shopinfo .product-t .image .tip{width: 40px;height: 20px;border-radius: 2px;font-size: 12px;line-height: 20px;text-align: center;display: block;position: absolute;top: 0;left: 0;color: #FFFFFF; background-image: linear-gradient(214deg, #ff4500 0%, #ff5800 53%, #ff4367 100%);}
+    .order-container .section-shopinfo .product-t .text{width: 810px;float: left;}
+    .order-container .section-shopinfo .product-t .tit{float: left;width: 100%;margin-bottom: 6px;line-height: 22px;font-size: 16px;text-align: left;color: #22272E;}
+    .order-container .section-shopinfo .product-t .info{width: 100%;height: auto;float: left;}
+    .order-container .section-shopinfo .product-t .info>.col{line-height:24px;font-size:14px;color:#627386;text-align:left;display:inline-block;width:25%}
+    .order-container .section-shopinfo .product-t .info>.col .red{color: #FF2A2A;}
+    .order-container .section-shopinfo .product-t .info>div.col{width: 40%;}
+    /*会员标签*/
+    .order-container .section-shopinfo .product-t .info>.col .svip-tag{width:100%;height:22px;letter-spacing:0;display: inline;margin-left: 10px;}
+    .order-container .section-shopinfo .product-t .info>.col .svip-tag .svip-icon{position:relative;z-index:9;display:inline-block;width:30px;height:22px;text-align:center;line-height:22px;font-size:12px;font-weight:400;color:#F0CB72;opacity:1;background:#333333}
+    .order-container .section-shopinfo .product-t .info>.col .svip-tag .svip-icon.btr{border-radius:2px 8px 0px 2px}
+    .order-container .section-shopinfo .product-t .info>.col .svip-tag .svip-price{z-index:1;position:relative;display:inline-block;padding-left:25px;padding-right:4px;margin-left:-27px;line-height:22px;background:#F0CB72;opacity:1;border-radius:2px;font-size:14px}
+    .order-container .section-shopinfo .product-t .info>.col .svip-tag .svip-price span{color: #333}
+
+    .order-container .section-shopinfo .product-t .price>p{line-height:24px;font-size:14px;color:#627386;text-align:left;display:inline-block;width:30%}
+    .order-container .section-shopinfo .product-t .price>p .red{color: #FF2A2A;}
+    .price-total{padding-top:20px;text-align:right;color:#22272e;font-size:16px}
+    .price-total span{color:#f94b4b}
+    .order-container .section-shopinfo .shopinfo-bott{width: 100%;height: auto;box-sizing: border-box;color: #22272E;background-color: #FFFAF8;padding: 8px 20px;}
+    .order-container .section-shopinfo .shopinfo-bott p{display:inline-block;margin-right:50px;line-height: 34px;color: #627386;font-size: 14px;float: left;}
+    .order-container .section-shopinfo .shopinfo-bott .red{color: #f94b4b;}
+    .order-container .section-shopinfo .shopinfo-bott .org{color: #FF5B00;}
+    .order-container .section-shopinfo .shopinfo-bott .none{color:#22272e;}
+    .order-container .section-shopinfo .shopinfo-note{width: 100%;height: 30px;line-height: 30px;padding: 10px 20px 16px 20px;}
+    .order-container .section-shopinfo .shopinfo-note p{color: #22272E;}
+    /*发票信息*/
+    .section-showInfo{ width: 100%;height: auto;box-sizing: border-box;float: left;padding:10px 20px;background-color: #FFFFFF;margin-bottom: 10px;}
+    .section-showInfo .title-name {color: #22272e;font-size: 14px;margin-bottom: 20px}
+    .section-showInfo .order-item {display: flex}
+    .section-showInfo .order-item p {margin-bottom: 20px;display: inline-block;color: #627386;width: 33%}
+    /*转账信息*/
+    .section-showInfo .vouch-list{ width: 100%;height: auto;box-sizing: border-box;padding: 16px 0; border-bottom: 1px solid #E2E7EF;}
+    .section-showInfo .refund-item-p{width: 100%;line-height: 30px;font-size: 14px;color: #666666;float: left;}
+    .section-showInfo .refund-item-imgs{width: 100%;height: auto;margin: 5px 0;float: left;}
+    .section-showInfo .refund-item-imgs .item-image{width: 100px;height: 100px;margin-right: 10px;border: 1px dashed #E1E1E1;float: left;}
+    .section-showInfo .refund-item-imgs .item-image a{width: 100px;height: 100px;display: block;}
+    .section-showInfo .refund-item-imgs .item-image a img{width: 100px;height: 100px;display: block;}
+    /*退款记录*/
+    .section-paymentlist{margin-bottom: 10px;width: 100%;height: auto;box-sizing: border-box;float: left;padding:10px 20px;background-color: #FFFFFF;}
+    .section-paymentlist .record-title{width: 100%;height: 48px;line-height: 48px;float: left;font-size: 16px;color: #22272E;}
+    .section-paymentlist .record-title .record-title-l{float: left;}
+    .section-paymentlist .record-title .record-title-r{float: right;}
+    .section-paymentlist .record-title .record-title-r .red{color: #FF2A2A;}
+    .section-paymentlist .record-list{width: 100%;height: auto;}
+    .section-paymentlist .record-list .record-item{width: 100%;height: 40px;}
+    .section-paymentlist .record-list .item-time{width: 33.33%;height: 40px;font-size: 14px;color: #627386;text-align: center;line-height: 40px;float: left;}
+    .section-paymentlist .record-list .item-time.mm{text-align: left;}
+    .section-paymentlist .record-list .item-time.tt{text-align: right;}
+    .section-paymentlist .record-list .item-rec{width: 50%;height: 40px;font-size: 14px;color: #627386;text-align: center;line-height: 40px;float: left;}
+    .section-paymentlist .record-list .item-rec.mm{text-align: left;}
+    .section-paymentlist .record-list .item-rec.tt{text-align: right;}
+    .section-paymentlist .record-empty{width: 100%;height: 40px;font-size: 14px;color: #999999;text-align: left;float: left;line-height: 40px;}
+    /*底部按钮*/
+    .section-botton{width: 100%;height: 76px;box-sizing: border-box;float: left;background-color: #FFFFFF;padding: 20px 24px;text-align: right;}
+
+}
+
+/**
+* 移动端
+*/
+@media screen and (max-width:768px){
+    #globalHead{display: none;}
+    .order-container { padding-bottom: 15vw;}
+    .order-container.none { padding-bottom: 0;}
+    .order-container .section-info,
+    .order-container .section-invoice,
+    .order-container .section-payment{box-sizing:border-box;width:100%;background:#FFF;margin-top:0vw;padding:2vw 3.2vw 4vw 3.2vw;font-size:3.2vw;color:#627386;line-height:7vw}
+    .order-container .order-title{position:relative;height:16vw}
+    .order-container .order-title .title-name:nth-of-type(1){color:#FF5B00;font-size:3.5vw;line-height:9vw}
+    .order-container .order-title .bag{position:absolute;left:0;top:2.6vw;width:9.6vw;height:4.2vw;line-height:4.2vw;text-align:center;color:#FFF;background-image:linear-gradient(90deg,#ffb427 0%,#f58e4d 100%);border-radius:2px}
+    .order-container .order-title .state{position:absolute;right:0;bottom:0;color:#FF5B00}
+    .order-container .order-title .title-time span,.order-container .order-content span{color:#22272e}
+    .order-container .order-item p{display:inline-block;width:49%}
+    .order-container .copy{width:auto!important;display:inline-block;height:6.4vw;line-height:6.4vw;padding:0 3vw;background-image:linear-gradient(214deg,#ff2929 0%,#ff6d1b 100%);border-radius:2px;color:#FFF;margin-left:2vw}
+    .order-container .order-item p.org{width:auto}
+    .order-container .order-item p.org span{color:#FF5B00}
+    .order-container .order-item p.address{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
+    .section-shopinfo .title{border-bottom:1px solid #F7F7F7;height:7.4vw;line-height:7.4vw;padding:1.3vw 3.2vw;position:relative}
+    .section-shopinfo .logo{width:7.4vw;height:7.4vw;border:1px solid #F7F7F7;margin-right:2vw}
+    .section-shopinfo .name{display:inline-block;color:#9aa5b5}
+    .section-shopinfo .title .priceTag{width:22vw;height:6.4vw;position:absolute;right:0;top:2vw}
+    .section-shopinfo .title .priceTag .tag{top:0}
+    .section-shopinfo{width:100%;background:#FFF;color:#9aa5b5;font-size:3.4vw;margin-top:1.5vw;padding:2vw 0;box-sizing:border-box}
+    .section-shopinfo .product{padding:2vw 3.2vw;box-sizing:border-box}
+    .section-prosinfo{padding:1vw 0 1vw 32.2vw;position:relative;margin-top:2vw}
+    .section-prosinfo .image{width:28vw;position:absolute;left:0;top:0;box-sizing: border-box;border: 1px solid #e1e1e1;}
+    .section-prosinfo .image img{width:28vw;height:28vw}
+    .section-prosinfo .image .tip{position:absolute;background:#ff4500;line-height:5vw;height:5vw;padding:0 2vw;white-space:nowrap;font-size:3.1vw;color:#FFF;top:0;left:0}
+    .section-prosinfo .text .tit{max-height:10.4vw;line-height:5.2vw;color:#22272e;font-size:3.7vw;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
+    .section-prosinfo .text .info{position:relative}
+    .section-prosinfo .text .info .priceTag .tag{position:absolute;right:0;top:auto;left:auto;}
+    .section-prosinfo .text .info>p{display:inline-block;min-width:48%;font-size:3.1vw;color:#627386;line-height: 6vw;}
+    .section-prosinfo .text .info>p .red{color:#FF2A2A}
+
+    /*会员标签*/
+    .section-prosinfo .text .svip-tag{height:4.74vw;letter-spacing:0;overflow: hidden;margin-left: 12vw;}
+    .section-prosinfo .text .svip-tag .svip-icon{position:relative;z-index:9;float: left; width:9.8vw;height:4.74vw;text-align:center;line-height:4.74vw;font-size:2.8vw;font-weight:400;color:#F0CB72;opacity:1;background:#333333}
+    .section-prosinfo .text .svip-tag .svip-icon.btr{border-radius:2px 8px 0px 2px}
+    .section-prosinfo .text .svip-tag .svip-price{z-index:1;position:relative;float: left;padding-left:5.4vw;padding-right:0.6vw;margin-left:-6vw;line-height:4.74vw;height: 4.74vw; background:#F0CB72;opacity:1;border-radius:2px;font-size:2.8vw}
+    .section-prosinfo .text .svip-tag .svip-price span{color: #333}
+    .section-prosinfo .text .svip-tag .svip-price span:nth-child(2){margin-left: -0.4vw}
+    .section-prosinfo .text .price{font-size:3.4vw;color:#627386}
+    .section-prosinfo .text .price .red{color:#f94b4b}
+
+    .order-container .section-shopinfo .shopinfo-bott{width: 100%;height: auto;box-sizing: border-box;color: #22272E;background-color: #FFFAF8;padding: 2vw 3.2vw;}
+    .order-container .section-shopinfo .shopinfo-bott p{display:inline-block;margin-right:8vw;line-height: 6.8vw;color: #627386;font-size: 3.4vw;float: left;}
+    .order-container .section-shopinfo .shopinfo-bott .red{color: #f94b4b;}
+    .order-container .section-shopinfo .shopinfo-bott .org{color: #FF5B00;}
+    .order-container .section-shopinfo .shopinfo-bott .none{color:#22272e;}
+    .order-container .section-shopinfo .shopinfo-note{width: 100%;height: auto;line-height: 6vw;padding: 3.2vw 3.2vw 0 3.2vw;box-sizing: border-box;}
+    .order-container .section-shopinfo .shopinfo-note p{width: 100%;color: #22272E;text-overflow: ellipsis;display: -webkit-box;word-break: break-all;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;}
+
+    /*发票信息*/
+    .section-showInfo{ width: 100%;height: auto;box-sizing: border-box;float: left;padding:2vw 3.3vw;background-color: #FFFFFF;margin-bottom: 10px;}
+    .section-showInfo .title-name {color: #22272e;font-size: 3.4vw;margin-bottom: 2vw;}
+    .section-showInfo .order-item p {margin-bottom: 3vw;display: inline-block;color: #627386;width: 100%;}
+    /*转账信息*/
+    .section-showInfo .vouch-list{ width: 100%;height: auto;box-sizing: border-box;padding: 1.5vw 0; border-bottom: 1px solid #E2E7EF;}
+    .section-showInfo .refund-item-p{width: 100%;line-height: 8vw;font-size: 3.4vw;color: #666666;float: left;}
+    .section-showInfo .refund-item-imgs{width: 100%;height: auto;margin: 5px 0;float: left;}
+    .section-showInfo .refund-item-imgs .item-image{width: 15vw;height: 15vw;margin-right: 10px;border: 1px dashed #E1E1E1;float: left;}
+    .section-showInfo .refund-item-imgs .item-image a{width: 15vw;height: 15vw;display: block;}
+    .section-showInfo .refund-item-imgs .item-image a img{width: 15vw;height: 15vw;display: block;}
+
+    .price-total{padding:3vw;text-align:right;color:#22272e;font-size:3.4vw;float: left;}
+    .price-total span{color:#f94b4b}
+    .payment-transfer{color:#22272e}
+    .payment-transfer .label>p{font-size:3.4vw;color:#22272e;line-height:5vw;padding:1.6vw 0}
+    .payment-transfer .label .label-title{font-size:3.1vw;color:#FF5B00}
+    .payment-transfer .label .label-t{color:#627386}
+    .payment-transfer .label .label-c{color:#FF2A2A;font-size:3.1vw}
+    .payment-transfer .label>p .red{color:#FF5B00}
+    .record-title,.record-empty{width:100%;box-sizing:border-box;font-size:3.4vw;margin-top:1.5vw;padding:3.2vw;background:#FFF;color:#22272e}
+    .record-title span{color:#f94b4b}
+    .section-botton{width: 100%; margin-top:1.5vw;padding: 3vw;background: #fff;box-sizing: border-box;position: fixed;bottom: 0;left: 0;z-index: 999;text-align: right;}
+    .section-botton .el-button{ width: 100%; }
+    footer{display: none; }
+
+
+}

+ 17 - 0
src/main/resources/static/css/supplier-center/order/order-share-login.css

@@ -0,0 +1,17 @@
+/*PC端**/
+ @media screen and (min-width:768px) {
+  body{background-color: #FFFFFF;}
+  .share-content{width: 240px;margin: 300px auto;}
+  .share-logo{ width: 160px;height: 90px;margin: 0 auto;margin-bottom: 40px; }
+  .share-logo {width: 160px;height: 90px;display: block;}
+  .el-form--label-top .el-form-item__label{padding: 0 !important;}
+}
+
+/*移动端**/
+ @media screen and (max-width:768px){
+body{background-color: #FFFFFF;}
+ .share-content{width: 100%;box-sizing: border-box;padding:30vw 16.5vw;}
+ .share-logo{ width: 36vw;height:23vw;margin: 0 auto;margin-bottom: 4vw; }
+ .share-logo {width: 36vw;height:23vw;display: block;}
+ .el-form--label-top .el-form-item__label{padding: 0 !important;}
+}

+ 16 - 6
src/main/resources/static/css/supplier-center/order/orderlist.css

@@ -8,8 +8,9 @@
     textarea::placeholder{color: #9aa5b5;}
     #newBtn div{height: 36px;border-radius: 2px;display: inline-block;text-align: center;cursor: pointer}
     #newBtn{float: left;margin: 0}
-    .supplier-main{margin-top: 10px;background: #fff;padding-top: 15px;}
+    .supplier-main{margin-top: 10px;background: #fff;}
     .order-content{padding: 10px 20px;overflow: hidden}
+    .order-tips{ padding: 0 20px;background: #FFECEC;line-height: 40px;font-size: 14px;color: #F94B4B;}
     .order-title{background-color: #ffffff;padding: 10px 20px;overflow: hidden;}
     .title-name{float: left;color: #22272e;}
     .title-name p{float: left;}
@@ -36,6 +37,10 @@
     .empty{background: #fff;margin-top: 10px;}
     .navLayout{min-height: auto;}
     .pagination{width: 100%;margin-top: 10px;float: left; background: #FFFFFF;padding: 8px 20px;box-sizing: border-box;}
+    .el-dialog-p{font-size: 14px;color: #22272E;line-height: 24px;margin-bottom: 10px;}
+    .el-dialog-red{font-size: 12px;color: #F94B4B;line-height: 24px;margin-top: 30px;}
+    .el-dialog-h1{font-size: 16px;color: #22272E;line-height: 24px;}
+    .el-dialog-h1 span{color: #FF5B00;}
 }
 
 /*移动*/
@@ -48,15 +53,16 @@
     .state {width: 92% !important;margin: 0 2vw;}
     #newBtn{float: left;margin: 2vw;}
     .order-content-main{padding-bottom: 15vw;}
-    .supplier-main{margin-top: 2.7vw;background: #fff;padding-top: 2.7vw;position: relative}
-    .order-content{padding: 1.3vw 5.3vw;overflow: hidden}
-    .order-title{background-color: #ffffff;padding: 0 5.3vw;overflow: hidden;font-size: 3.7vw;}
+    .supplier-main{margin-top: 2.7vw;background: #fff;position: relative}
+    .order-content{padding: 1.3vw 3vw;overflow: hidden}
+    .order-tips{ padding:3vw;background: #FFECEC;line-height: 6vw;font-size: 14px;color: #F94B4B;margin-bottom: 3vw;}
+    .order-title{background-color: #ffffff;padding: 0 3vw;overflow: hidden;font-size: 3.7vw;}
     .title-name{color: #FF5B00;margin-bottom: 3.8vw;}
     .title-name p{float: left;}
     .title-name p.state{color:#FF5B00;margin-left: 10vw;}
     .title-time{color: #9aa5b5;margin-bottom:3.8vw;}
     .order-item{overflow:hidden ;}
-    .order-item p{margin-bottom: 5.3vw;width: 50%;float: left;}
+    .order-item p{margin-bottom: 3vw;width: 50%;float: left;}
     .order-item.pay span{color: #FF5B00;}
     .red{color: #f94b4b;}
     .order-botton{width: 100%;overflow: hidden;height: 16vw;line-height: 16vw;}
@@ -71,7 +77,7 @@
     .order-product .product-info{float: right;width: 65%;}
     .order-product{overflow: hidden;margin-bottom: 1.9vw;}
     .product-info p{color: #627386;margin-top: 7px;overflow: hidden;}
-    .userinfo{background-color: #f0f3f7;box-shadow: 0px .8vw 1.3vw 0px rgba(0, 0, 0, 0.07);padding: 2.7vw 5.3vw;color: #627386;}
+    .userinfo{background-color: #f0f3f7;box-shadow: 0px .8vw 1.3vw 0px rgba(0, 0, 0, 0.07);padding: 2.7vw 3vw;color: #627386;}
     .product-info h3{font-size: 3.7vw;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
     .userinfo p{display: inline-block;margin-bottom: 2.7vw;}
     .username p:nth-child(1){width: 100%;}
@@ -79,5 +85,9 @@
     .username p:nth-child(3){float: right;}
     .userinfo .blcak{color: #22272e;}
     .pagination{width: 100%;min-height: 2vw;position: fixed;bottom: 0;left: 0;background: #FFFFFF;z-index: 99;padding: 2vw;box-sizing: border-box;}
+    .el-dialog-p{font-size: 14px;color: #22272E;line-height: 24px;margin-bottom: 10px;}
+    .el-dialog-red{font-size: 12px;color: #F94B4B;line-height: 24px;margin-top: 30px;}
+    .el-dialog-h1{font-size: 16px;color: #22272E;line-height: 24px;}
+    .el-dialog-h1 span{color: #FF5B00;}
     footer{display: none;}
 }

BIN
src/main/resources/static/img/supplier/icon-lg-h5Login.png


BIN
src/main/resources/static/img/supplier/icon-lg-pcLogin.png


+ 96 - 0
src/main/resources/static/js/account/login-fast.js

@@ -0,0 +1,96 @@
+var loginPage = new Vue({
+    el: "#loginPage",
+    data: {
+        maxtime:60,
+        qrCodeLogin: false,
+        userData: {
+            account: '',
+            email: '',
+            phone: '',
+            name: '',
+            userName: '',
+            userId: '',
+            spId: '',
+            clubId: '',
+            shopId: '',
+            identity: '',
+            permission: '',
+            token: ''
+        },
+        applyUse:{
+            clubId: '',
+            shopId: '',
+            token:'',
+        },
+        isWeChat: false,
+        text:'',
+        stautsfalse:false,
+        infofalse:false,
+        isSlideFinishState:true,
+        loginTabs:0,
+        mobilCount:0,
+        mobileCodeText:'获取验证码',
+        mobilTime:null,
+        isMobileDisabled:false,
+        slideVerify:null
+    },
+    computed: {
+
+    },
+    methods: {
+        openFullScreen2(userId) {
+            const loading = this.$loading({
+                lock: true,
+                text: 'Loading',
+                spinner: 'el-icon-loading',
+                background: 'rgba(0, 0, 0, 0.4)'
+            });
+            setTimeout(() => {
+                this.handleShortcutLogin(userId)
+                loading.close();
+            }, 2000);
+        },
+        handleShortcutLogin(userId){// 点击账号密码登录
+            const _self = this;
+            UserApi.shortcutLogin({ userId:userId},function(response){
+                _self.userUpdataeStatus(response)
+            });
+        },
+        userUpdataeStatus(response){// 更新登录
+            if(response.code === 0){
+                this.userData = {
+                    account: response.data.account,
+                    email: response.data.email,
+                    phone: response.data.bindMobile,
+                    name: response.data.name,
+                    userName: response.data.userName,
+                    userId: response.data.userId,
+                    spId: response.data.serviceProviderId,
+                    clubId: response.data.clubId,
+                    shopId: response.data.shopId,
+                    userIdentity: response.data.userIdentity,
+                    permission: response.data.userPermission,
+                    token: response.data.token,
+                    vipFlag: response.data.vipFlag,
+                    firstClubType: response.data.firstClubType,
+                    listingFee:response.data.listingFee,
+                    shopIsOrder:response.data.shopIsOrder
+                };
+                this.setStorages(this.userData);
+                location.href = '/supplier/order/list.html';
+            } else {// 登录失败
+                CAIMEI.Alert(response.msg,'确定',false);
+            }
+        },
+        setStorages(data){//存储本地数据
+            localStorage.setItem('userInfo',JSON.stringify(data));
+        }
+    },
+    created: function () {
+
+    },
+    mounted: function () {
+        const userId = CAIMEI.getUrlParam('userId');
+        this.openFullScreen2(userId)
+    }
+});

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

@@ -78,7 +78,8 @@ var loginPage = new Vue({
                     token: response.data.token,
                     vipFlag: response.data.vipFlag,
                     firstClubType: response.data.firstClubType,
-                    listingFee:response.data.listingFee
+                    listingFee:response.data.listingFee,
+                    shopIsOrder:response.data.shopIsOrder
                 };
                 _self.setStorages( _self.userData);
                 // 登录成功页面跳转
@@ -170,7 +171,8 @@ var loginPage = new Vue({
                             unionId:response.data.unionId,
                             firstClubType:response.data.firstClubType,
                             vipFlag: response.data.vipFlag,
-                            listingFee:response.data.listingFee
+                            listingFee:response.data.listingFee,
+                            shopIsOrder:response.data.shopIsOrder
                         };
                         _self.setStorages( _self.userData);
                         // 登录成功页面跳转
@@ -200,7 +202,8 @@ var loginPage = new Vue({
                             permission: response.data.userPermission,
                             token: response.data.token,
                             unionId:response.data.unionId,
-                            listingFee:response.data.listingFee
+                            listingFee:response.data.listingFee,
+                            shopIsOrder:response.data.shopIsOrder
                         };
                         _self.setStorages( _self.userData);
                         setTimeout(function(){

+ 7 - 2
src/main/resources/static/js/base.js

@@ -9,6 +9,7 @@ var GLOBAL_VIP_FLAG = 0; // 超级会员标记
 var GLOBAL_CLUB_TYPE = 0; // 会员类型 1 医美机构  2 胜美机构
 var IDENTITY = 0; // 用户标记
 var isForbidTabs = true; //控制菜单
+var isShopIsOrder = false; //控制菜单
 if(localStorage.getItem('userInfo')){
     globalUserData = JSON.parse(localStorage.getItem('userInfo'));
     GLOBAL_TOKEN = globalUserData.token;
@@ -20,14 +21,18 @@ if(localStorage.getItem('userInfo')){
     GLOBAL_CLUB_TYPE = globalUserData.firstClubType ? globalUserData.firstClubType : null;
     if (GLOBAL_USER_ID === 5261 || GLOBAL_USER_ID === 10947 || GLOBAL_USER_ID === 11579) {
         GLOBAL_USER_IDENTITY = 1;
-        GLOBAL_VIP_FLAG == 1;
+        GLOBAL_VIP_FLAG = 1;
         IDENTITY = 1;
-    }else if(GLOBAL_CLUB_TYPE == 1){
+    }else if(GLOBAL_CLUB_TYPE === 1){
         IDENTITY = 5;
     }
     if(globalUserData.listingFee === 1){
         isForbidTabs = false;
     }
+    if(globalUserData){
+        isShopIsOrder = globalUserData.shopIsOrder;
+    }
+    console.log('isShopIsOrder',isShopIsOrder)
 } else {
     var pathname = window.location.pathname;
     var weChatLoginFlag = (Number(getBaseCookie("weChatAutoLogin"))===1 || Number(getBaseCookie("weChatAutoLogin"))===2);

+ 105 - 0
src/main/resources/static/js/common/serviceapi/supplier.service.js

@@ -987,6 +987,111 @@ var SupplierApi = {
             .then(function(res){
                 callback(res);
             });
+        },
+        /**
+         * @供应商商品数据
+         */
+        getShopProduct : function (params, callback) {
+            Http.AjaxService({
+                url:'/commodity/Shop/getShopProduct',
+                type:'GET',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /**
+         * @供应商帮机构下单确认订单信息
+         */
+        getSettlement : function (params, callback) {
+            Http.AjaxService({
+                url:'/order/shop/settlement',
+                type:'GET',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /**
+         * @供应商帮机构下单确认订单信息
+         */
+        shopGenerateOrder : function (params, callback) {
+            Http.AjaxService({
+                url:'/order/submit/shopGenerateOrder',
+                type:'post',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /**
+         * @生成订单分享码
+         */
+        shopOrderShareCode : function (params, callback) {
+            Http.AjaxService({
+                url:'/order/club/getShopOrderShareCode',
+                type:'get',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /**
+         * @取消订单
+         */
+        cancelOrder : function (params, callback) {
+            Http.AjaxService({
+                url:'/order/shop/cancelOrder',
+                type:'get',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /**
+         * @生成订单分享码
+         */
+        checkShopOrderShareCode : function (params, callback) {
+            Http.AjaxService({
+                url:'/order/club/shop/code/check',
+                type:'get',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /**
+         * @获取待确认订单详情
+         */
+        getShopOrderById : function (params, callback) {
+            Http.AjaxService({
+                url:'/order/club/getShopOrderById',
+                type:'get',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
         }
 
 

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

@@ -510,5 +510,29 @@ var UserApi = {
             }).then(function (res) {
                 callback(res);
             });
+        },
+        mcareWechatMinLink: function (params, callback) {//获取H5跳转丽格小程序路径
+            Http.AjaxService({
+                url: '/user/wechat/link/mcare',
+                type:'get',
+                data:params,
+                json:false,
+                isHost:true
+            }).then(function (res) {
+                callback(res);
+            });
+        },
+        shortcutLogin : function (params,callback) {//供应商快捷登录
+            Http.AjaxService({
+                url:'/user/shop/shortcutLogin',
+                type:'GET',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res)
+            });
         }
+
 };

+ 1 - 1
src/main/resources/static/js/shopping/confirm.js

@@ -19,7 +19,7 @@ const defaultConfirmParam = {
         addressId:0,		// 收货地址Id
         clubCouponId:0,		// 关联优惠券Id
         clubId:0,			// 机构Id
-        orderInfo:[],		// 订单商品数据 // 订单发票信息
+        orderInfo:[],		// 订单商品数据
         orderInvoice:{ type: 0 },   // 订单发票信息
         payInfo:{			        // 订单金额数据
             orderShouldPayFee: 0,	// 订单最终支付金额

+ 67 - 1
src/main/resources/static/js/supplier-center/order/detail.js

@@ -17,6 +17,9 @@ const seeDetail = new Vue({
                 amount: null
             },
             dialogFormVisible: false,
+            dialogShareVisible: false,
+            dialogShareCode: '',
+            dialogShareLink: '',
             rules: {
                 amount: [{required: true, validator: this.picValidator, trigger: 'blur'}]
             },
@@ -145,12 +148,13 @@ const seeDetail = new Vue({
                         _self.shopOrderDetails()
                     })
                 }else{
-                    CAIMEI.Alert(response.msg, '确定', false);
+                    _self.$message.error(response.msg)
                 }
             })
         },
         // 按钮操作
         handeleDropdown (type, shopOrderId) {
+            const _self = this;
             switch (type) {
                 case 1:// 发货
                     window.location.href = '/supplier/order/delivery.html?shopOrderId=' + shopOrderId;
@@ -173,8 +177,70 @@ const seeDetail = new Vue({
                 case 7:// 修改订单
                     window.location.href = '/supplier/order/order-edit.html?shopOrderId='+shopOrderId;
                     break
+                case 8:// 分享订单
+                    this.handleOrderShareCode(shopOrderId)
+                    break
+                case 9:// 取消订单
+                    this.$confirm('确定取消该订单吗?', '提示', {
+                        confirmButtonText: '确定',
+                        cancelButtonText: '取消',
+                        type: 'warning'
+                    }).then(() => {
+                        _self.handleCancelOrder(shopOrderId)
+                    }).catch(() => {
+                       console.log('取消删除')
+                    });
+                    break
             }
         },
+        // 取消订单
+        handleCancelOrder(shopOrderId){
+            const _self = this;
+            SupplierApi.cancelOrder({ shopOrderId:shopOrderId },function (response) {
+                if(response.code===0){
+                    _self.$message.success('订单已取消');
+                    setTimeout(()=>{
+                        window.location.href = '/supplier/order/list.html?state=0'
+                    },2000)
+                }else{
+                    _self.$message.error(response.msg)
+                }
+            })
+        },
+        // 获取订单分享码
+        handleOrderShareCode(shopOrderId){
+            const _self = this;
+            SupplierApi.shopOrderShareCode({ shopOrderId:shopOrderId },function (response) {
+                if(response.code===0){
+                    const data = response.data
+                    _self.dialogShareCode = data.shareCode
+                    _self.dialogShareLink = data.link
+                    _self.dialogShareVisible = true
+                }else{
+                    _self.$message.error(response.msg)
+                }
+            })
+        },
+        // 复制分享链接
+        handleCopy(){
+            const hiddenInput = document.createElement('textarea');
+            hiddenInput.style.position = 'fixed';
+            hiddenInput.style.left = '0';
+            hiddenInput.style.top = '0';
+            hiddenInput.style.opacity = '0';
+            hiddenInput.value = this.dialogShareLink;
+            // 将隐藏的 `<textarea>` 元素添加到文档中
+            document.body.appendChild(hiddenInput);
+            // 选中隐藏的 `<textarea>` 中的文本
+            hiddenInput.focus();
+            hiddenInput.select();
+            // 执行复制操作
+            document.execCommand('copy');
+            // 删除隐藏的 `<textarea>` 元素
+            document.body.removeChild(hiddenInput);
+            // 提示用户文本已复制到剪贴板
+            this.$message.success('复制链接成功');
+        },
         SubtrAount(arg1, arg2) {
             var r1, r2, m, n
             try {

+ 460 - 0
src/main/resources/static/js/supplier-center/order/order-create.js

@@ -0,0 +1,460 @@
+$('.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(2).addClass("on");
+const seeDetail = new Vue({
+    el: '#seeDetail',
+    mixins: [cmSysVitaMixins],
+    data() {
+        const defaultConfirmParam = {
+            cartType:3, 		// 购买类型:(1自主下单, 3协销下单)
+            orderSource:1,		// 订单来源 1WWW 6小程序[采美,星范]
+            addressId:0,		    // 收货地址Id
+            cityId:0,		    // 收货地址Id
+            orderInfo:[],		// 订单商品数据 // 订单发票信息
+            addressInfo:{
+                receiver:'',
+                mobile:'',
+                provinceId:'',
+                cityId:'',
+                townId:'',
+                address:''
+            }, // 订单地址信息
+            orderInvoice:{ type: 0 },   // 订单发票信息
+            payInfo:{			        // 订单金额数据
+                orderShouldPayFee: 0,	// 订单最终支付金额
+                clauseId:0				// 条款Id
+            }
+        };
+        return {
+            isFiexd:false,
+            shopId:'',
+            addressForm:{
+                receiver:'',
+                mobile:'',
+                provinceId:'',
+                cityId:'',
+                townId:'',
+                address:''
+            },
+            invoiceForm:{
+                type:0, // 0 不开发票 1 普通发票 2 增值税发票
+                headingType:0, // 0 个人 1 单位
+                invoiceTitle:'', // 发票抬头
+                corporationTaxNum:'',//单位税号
+                registeredAddress:'',// 注册地址
+                registeredPhone:'',// 注册电话
+                openBank:'',// 开户银行
+                bankAccountNo:''// 银行账号
+            },
+            hanldShouldPayFee:0,
+            prosParams:{
+                productInfo:[],
+                shopId:'',
+                cityId:''
+            },
+            confirmParam: defaultConfirmParam, 	// 提交订单参数
+            supplier:{},
+            orderInfoArray:[],
+            provinceList:[],
+            cityList:[],
+            townList:[],
+            productsArr:[],
+            isLoading:true,
+            abnormalProductList:[],// 成本异常商品
+            goodsDialogVisible:false,
+            abnormalDialogVisible:false,
+            productRadio:null,
+            checkedProductList:[],
+            total:0,
+            productsList:[],
+            listQuery:{
+                name:'',//商品名称
+                shopId:'',
+                pageNum:1,
+                pageSize:10
+            },
+            rules: {
+                receiver: [{required: true,message: '请填写收货人',trigger: 'blur'}],
+                mobile: [{required: true,message: '请填写联系方式',trigger: 'blur'}],
+                provinceId: [{required: true,message: '请选择省份',trigger: 'change'}],
+                cityId: [{required: true,message: '请选择市',trigger: 'change'}],
+                townId: [{required: true,message: '请选择区县',trigger: 'change'}],
+                address: [{required: true,message: '请填写详细地址信息',trigger: 'blur'}],
+                invoiceTitle: [{required: true,message: '请填写发票抬头',trigger: 'blur'}],
+                corporationTaxNum: [{required: true,message: '请填写单位税号',trigger: 'blur'}],
+                registeredAddress: [{required: true,message: '请填写详细地址信息',trigger: 'blur'}],
+                registeredPhone: [{required: true,message: '请填写注册电话',trigger: 'blur'}],
+                openBank: [{required: true,message: '请填写开户银行',trigger: 'blur'}],
+                bankAccountNo: [{required: true,message: '请填写银行账号',trigger: 'blur'}]
+            },
+            submitLoading:false,
+        }
+    },
+    filters: {
+        amountfilters(value) {
+            if (value) {
+                return Number(value).toFixed(2)
+            } else {
+                return '0.00'
+            }
+        },
+    },
+    computed: {
+        disabled() {
+            return this.productRadio === null
+        },
+        checkedConfirmFlag(){
+            if(this.confirmParam.cityId && this.checkedProductList.length > 0 ){
+                return true
+            }
+        },
+    },
+    methods: {
+        // 计算总运费
+        handleTotalPostage(supplier){
+            if(supplier.isColdChina){
+                if(supplier.handlePostageFlag === 2){
+                    return (supplier.coldChain*100 + supplier.postage*100 - supplier.postage*100)/100
+                }else{
+                    return (supplier.postage*100 + supplier.coldChain*100)/100
+                }
+            }else{
+                return supplier.postage
+            }
+        },
+        // 勾选冷链费
+        handleChangeColdChina(flag,supplier){
+            if(flag){
+                supplier.totalPrice = Number((supplier.totalPrice*100 + supplier.coldChain*100)/100)
+                this.attributePallPrice()
+                console.log('totalPrice',supplier.totalPrice)
+            }else{
+                supplier.totalPrice = Number(this.repiceNumSub(supplier.totalPrice,supplier.coldChain))
+                this.attributePallPrice()
+                console.log('hanldShouldPayFee',this.hanldShouldPayFee)
+            }
+        },
+        getProvinceOptions(){ // 获取全部省份
+            const _this = this;
+            OrderApi.GetAddressSelect({},function(res){
+                if(res.code === 0 && res.data){
+                    _this.provinceList = res.data;
+                }else{
+                    CAIMEI.Alert(res.msg,'确定',false);
+                }
+            });
+        },
+        getCityList(parentId){// 获取地区
+            const _this = this;
+            this.cityList = [];
+            this.townList = [];
+            this.addressForm.cityId = '';
+            this.addressForm.townId = '';
+            OrderApi.GetAddressSelect({ parentId: parentId,type:1 },function(res){
+                if(res.code === 0 && res.data){
+                    _this.cityList = res.data;
+                }else{
+                    CAIMEI.Alert(res.msg,'确定',false);
+                }
+            });
+        },
+        getTownList(cityId){
+            const _this = this;
+            this.townList = [];
+            this.addressForm.townId = '';
+            this.confirmParam.cityId = this.prosParams.cityId = this.addressForm.cityId
+            console.log('cityId',cityId)
+            OrderApi.GetAddressSelect({parentId: cityId,type:2},function(res){
+                if(res.code === 0 && res.data){
+                    _this.townList = res.data;
+                }else{
+                    CAIMEI.Alert(res.msg,'确定',false);
+                }
+            })
+            // 切换市区时重新调用确认订单信息
+            if(this.checkedProductList.length > 0){
+                this.prosParams.productInfo = this.handleProStringify(this.checkedProductList)
+                console.log('prosParams',this.prosParams)
+                this.getSettlement(this.prosParams)
+            }
+        },
+        handleConfirm(){
+            // 校验收货信息
+            this.$refs['dataForm'].validate(async valid => {
+                if (valid) {
+                    if(this.productsArr.length === 0){
+                        this.$alert('请添加商品~', '提示', {
+                            type: 'warning',
+                            confirmButtonText: '确定',
+                        });
+                    }
+                }
+            })
+            // 校验发票
+            if(this.invoiceForm.type!==0){
+                this.$refs['invoiceForm'].validate(async valid => {
+                    if (valid) {
+                        if(this.checkedConfirmFlag){
+                            this.initializationParams()
+                        }
+                    }
+                })
+            }else {
+                if(this.checkedConfirmFlag){
+                    this.initializationParams()
+                }
+            }
+        },
+        //统一处理
+        initializationParams(){
+            // 发票信息
+            if(this.invoiceForm.type!==0){
+                this.invoiceForm.type = parseInt(this.invoiceForm.type)
+                this.confirmParam.orderInvoice = this.invoiceForm;
+            }
+            //商品信息
+            this.confirmParam.orderInfo = this.hanldeProcessing()
+            console.log('orderInfo',this.confirmParam.orderInfo)
+            this.confirmParam.payInfo.orderShouldPayFee = parseFloat(this.hanldShouldPayFee).toFixed(2);
+            this.confirmParam.addressInfo = JSON.stringify(this.addressForm)
+            console.log('addressInfo',this.confirmParam.addressInfo)
+            this.confirmParam.payInfo = JSON.stringify(this.confirmParam.payInfo)
+            this.confirmParam.orderInfo = JSON.stringify(this.confirmParam.orderInfo)
+            this.confirmParam.orderInvoice = JSON.stringify(this.confirmParam.orderInvoice)
+            console.log('confirmParam',this.confirmParam);
+            this.handleConfirmOrder(this.confirmParam);
+        },
+        // 处理数据格式
+        hanldeProcessing() {
+            return this.orderInfoArray.map(el => {
+                let productInfo = []
+                el.cartList.forEach(pros => {
+                    productInfo.push({
+                        skuId: pros.skuId,
+                        productNum: pros.number,
+                        presentNum: 0,
+                        productType: pros.giftType,
+                        price: pros.price.toString()
+                    })
+                })
+                return {
+                    splitCode: el.splitCode,
+                    shopId: el.shopId,
+                    note: el.note ? el.note : '',
+                    postage: el.isColdChina
+                        ? parseInt(el.postage + el.coldChain).toFixed(2)
+                        : parseInt(el.postage).toFixed(2),
+                    postageFlag: parseInt(el.handlePostageFlag),
+                    isColdChina: el.isColdChina ? 1 : 0,
+                    productInfo: productInfo
+                }
+            })
+        },
+        handleConfirmOrder(params){
+            const _this = this;
+            this.submitLoading = true
+            setTimeout(()=>{
+                SupplierApi.shopGenerateOrder(params,function(response){
+                    if(response.code === 0){
+                        const data = response.data
+                        _this.submitLoading = false
+                        _this.$message({
+                            message: '恭喜你,订单提交成功~',
+                            type: 'success'
+                        });
+                        setTimeout(()=>{
+                            _this.submitLoading = false
+                            _this.formatConfirmParam()
+                            window.location.href = '/supplier/order/detail.html?shopOrderId='+data.shopOrderId
+                        },2000)
+                    }else{
+                        setTimeout(()=>{
+                            _this.$message.error(response.msg)
+                            _this.submitLoading = false
+                            _this.formatConfirmParam()
+                        },2000)
+                    }
+                })
+            },1000)
+        },
+        // 还原提交订单参数格式
+        formatConfirmParam:function(){
+            this.confirmParam.payInfo = JSON.parse(this.confirmParam.payInfo);
+            this.confirmParam.orderInfo = JSON.parse(this.confirmParam.orderInfo);
+            this.confirmParam.addressInfo = JSON.parse(this.confirmParam.addressInfo);
+            this.confirmParam.orderInvoice = JSON.parse(this.confirmParam.orderInvoice);
+            console.log('payInfo',this.confirmParam.payInfo)
+        },
+        // 添加商品弹窗显示
+        handleShowVisible(){
+            this.getProductList()
+            this.goodsDialogVisible = true
+        },
+        //切换页码
+        handleCurrentChange(val){
+            this.listQuery.pageNum = val;
+            this.getProductList();
+        },
+        // 已选择的禁用勾选框
+        handleSelectable(row) {
+            const skuIds = this.checkedProductList.map(pros => pros.skuId);
+            console.log('skuIds',skuIds)
+            return !skuIds.includes(row.skuId);
+        },
+        //取消选择
+        handleCanle(){
+            this.productRadio = null
+            this.goodsDialogVisible = false
+        },
+        // 删除确认商品
+        handleDelete(index){
+            this.checkedProductList.splice(index, 1)
+            if(this.checkedProductList.length === 0){
+                this.productsArr = []
+            }
+            if(this.checkedProductList.length > 0){
+                this.prosParams.productInfo = this.handleProStringify(this.checkedProductList)
+                this.getSettlement(this.prosParams)
+            }
+        },
+        //修改sku
+        handleChangeSku(row){
+            const _this = this
+            let skus = row.skus
+            console.log('skus',skus)
+            skus.forEach((sku)=>{
+                if(row.skuId === sku.skuId){
+                    if(sku.ladderPriceFlag === 1){
+                        row.price = _this.handeleToFixed(sku.ladderPriceList[0].buyPrice)
+                        row.count = sku.minBuyNumber
+                        row.minBuyNumber = sku.minBuyNumber
+                        row.ladderPriceFlag = sku.ladderPriceFlag
+                        row.ladderPriceList = sku.ladderPriceList
+                    }else{
+                        row.price = _this.handeleToFixed(sku.price)
+                        row.count = sku.minBuyNumber
+                        row.minBuyNumber = sku.minBuyNumber
+                        row.ladderPriceFlag = sku.ladderPriceFlag
+                        row.ladderPriceList = sku.ladderPriceList
+                    }
+                }
+            })
+        },
+        // 修改数量判断阶梯价
+        handleChangeNumber(row){
+            const _this = this
+            if (row.count < row.minBuyNumber) {
+                row.count = row.minBuyNumber
+                if (row.ladderPriceFlag === 1) {
+                    row.ladderPriceList.forEach((item) => {
+                        if (row.count >= item.buyNum) {
+                            row.price = _this.handeleToFixed(item.buyPrice)
+                        }
+                    })
+                } else {
+                    row.price = _this.handeleToFixed(row.price)
+                }
+            } else {
+                if (row.ladderPriceFlag === 1) {
+                    row.ladderPriceList.forEach((item) => {
+                        if (row.count >= item.buyNum) {
+                            row.price = _this.handeleToFixed(item.buyPrice)
+                        }
+                    })
+                } else {
+                    row.price = _this.handeleToFixed(row.price)
+                }
+            }
+        },
+        // 保留小数点后两位数
+        handeleToFixed(value){
+            return value.toFixed(2)
+        },
+        //确认选择商品
+        handleAddProConfirm(){
+            this.checkedProductList = [...this.checkedProductList,...this.productRadio]
+            this.prosParams.productInfo = this.handleProStringify(this.checkedProductList)
+            this.getSettlement(this.prosParams)
+        },
+        // 统一格式化确认订单商品信息参数
+        handleProStringify(productInfo){
+             return JSON.stringify(productInfo.map((pros)=>{
+                return {
+                    productId:pros.productId,
+                    count:pros.count,
+                    skuId:pros.skuId,
+                    price:pros.price
+                }
+            }))
+        },
+        // 确认订单信息
+        getSettlement(params){
+            const _this = this;
+            this.orderInfoArray =[]
+            SupplierApi.getSettlement(params,function(response){
+                if(response.code === 0){
+                    let data = response.data
+                    if(data.abnormalProductList.length > 0){
+                        _this.abnormalProductList = data.abnormalProductList
+                        _this.abnormalDialogVisible = true
+                        // 根据 checkedProductList 中的 skuId,删除 abnormalProductList 中的相同 skuId 的数据
+                        _this.checkedProductList = _this.checkedProductList.filter(check => !_this.abnormalProductList.map(abnormal => abnormal.skuId).includes(check.skuId));
+                        console.log('checkedProductList',_this.checkedProductList)
+                    }else{
+                        _this.supplier = data.shop
+                        _this.orderInfoArray.push(_this.supplier)
+                        _this.hanldShouldPayFee = data.shop.totalPrice;
+                        _this.supplier.handlePostageFlag = data.shop.postageFlag
+                        _this.productsArr = data.shop.cartList
+                        _this.handleCanle()
+                    }
+                }else{
+                    _this.$message.error(response.msg)
+                }
+            })
+        },
+        // 选择商品
+        handleSelectionChange(row) {
+            this.productRadio = row
+            console.log('productRadio', this.productRadio)
+        },
+        getProductList(){//我的商品数据初始化
+            const _this = this;
+            this.isLoading = true
+            SupplierApi.getShopProduct(this.listQuery,function(response){
+                if(response.code === 0){
+                    const data  = response.data
+                    _this.productsList = data.results.map((pros)=>{
+                        pros.count = pros.minBuyNumber
+                        pros.price = _this.handeleToFixed(pros.price)
+                        return pros
+                    })
+                    _this.total = data.totalRecord
+                    _this.isLoading = false
+                }else{
+                    CAIMEI.Alert(response.msg, '确定')
+                    _this.isLoading = false
+                }
+            })
+        },
+    },
+    mounted () {
+        const _this = this;
+        this.getProvinceOptions();
+        if(globalUserData){
+            this.listQuery.shopId = this.confirmParam.shopId =  globalUserData.shopId;
+            this.shopId = this.prosParams.shopId = globalUserData.shopId;
+        }
+        if (isPC) {
+            $(window).scroll(function (event) {
+                var supportPageOffset = window.pageXOffset !== undefined; // 判断是否支持pageXOffset
+                var isCSS1Compat = ((document.compatMode || "") === "CSS1Compat"); // 判断渲染模式是不是标准模式
+                var scrollHeight = supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;
+                if (scrollHeight < 100) {
+                    _this.isFiexd = true
+                } else {
+                    _this.isFiexd = false
+                }
+            });
+        }
+    },
+});

+ 5 - 0
src/main/resources/static/js/supplier-center/order/order-edit.js

@@ -16,6 +16,8 @@ const seeDetail = new Vue({
             rules: {
                 amount: [{required: true, validator: this.picValidator, trigger: 'blur'}]
             },
+            abnormalDialogVisible:false,
+            abnormalProductList:[],// 成本异常商品
         }
     },
     filters: {
@@ -108,6 +110,9 @@ const seeDetail = new Vue({
                         CAIMEI.dialog('修改成功',true,function () {
                             window.location.href = '/supplier/order/detail.html?shopOrderId='+_self.shopOrderId;
                         })
+                    }else{
+                        _self.abnormalProductList = response.data
+                        _self.abnormalDialogVisible = true
                     }
                 })
             })

+ 168 - 0
src/main/resources/static/js/supplier-center/order/order-share-detail.js

@@ -0,0 +1,168 @@
+const orderPage = new Vue({
+    el: "#orderPage",
+    data() {
+        return{
+            isRequset: true,
+            orderId: 0,              //订单ID
+            shopOrderId:0,          //子订单ID
+            userId: 0,              //用户ID
+            orderInfo: {},           //订单信息
+            shopOrderList: [],       //订单商品信息
+            userInfo: {},            //订单用户信息
+            orderInvoice: {},        //发票信息
+            discernReceiptList: [],  //订单付款信息
+            returnedPurchaseList: [],//订单退款信息
+            voucherList:[],
+            modelType: 0,
+            isShowBeansAlet: false,
+            bgImagePath: '',//根据类型显示图片标记
+            beanNumber: 100,
+            beansType: 7,
+            isShareLogin:false,
+            isWeChatBrowser:false,
+            linkParams:{
+                path:'pages/user/order/order-confirmed',
+                query:'',
+                env:'develop'//正式"release",体验"trial",开发"develop"
+            }
+        }
+    },
+    filters: {
+        NumFormat(text) {//处理金额
+            return Number(text).toFixed(2);
+        },
+        NumBadge(n) {//处理
+            var num = '';
+            if (n > 100) {
+                num = 99
+            } else {
+                num = n;
+            }
+            return num;
+        },
+        formatIncludedTax(value) {
+            if (value === '1') {
+                return '不含税 ';
+            } else if (value === '2') {
+                return '含税';
+            } else {
+                return '';
+            }
+        },
+        statusFilters(value) {
+            //处理订单状态显示
+            const map = {
+                0: '待确认',
+                2: '交易完成',
+                4: '已关闭',
+                5: '交易全退',
+                6: '交易全退',
+                11: '待付款待发货',
+                12: '待付款部分发货',
+                13: '待付款已发货',
+                21: '部分付款待发货',
+                22: '部分付款部分发货',
+                23: '部分付款已发货',
+                31: '已付款待发货',
+                32: '已付款部分发货',
+                33: '已付款已发货'
+            }
+            return map[value]
+        },
+        // 设置发票文案
+        setInvoiceText(data) {
+            if(data){
+                const map = {
+                    0: '个人',
+                    1: '单位'
+                }
+                switch (data.type) {
+                    case 0:
+                        return `不开发票`
+                        break
+                    case 1:
+                        return `普票-${map[data.headingType]}`
+                        break
+                    case 2:
+                        return `专票`
+                        break
+                }
+            }else{
+                return `不开发票`
+            }
+        },
+    },
+    computed: {
+
+    },
+    methods: {
+        openFullScreen2(shopOrderId) {
+            const loading = this.$loading({
+                lock: true,
+                text: 'Loading',
+                spinner: 'el-icon-loading',
+                background: 'rgba(0, 0, 0, 0.4)'
+            });
+            setTimeout(() => {
+                this.getShopOrderById(shopOrderId)
+                loading.close();
+            }, 2000);
+        },
+        getShopOrderById(shopOrderId) {//查询订单详情
+            const _self = this;
+            SupplierApi.getShopOrderById({ shopOrderId: shopOrderId },function (response) {
+                if (response.code === 0) {
+                    const data = response.data;
+                    _self.orderInfo = data.shopOrder;
+                    _self.userInfo = data.userInfo;
+                    _self.orderId = data.shopOrder.orderId;
+                    _self.orderInvoice = data.orderInvoice;
+                    _self.shopOrderList = data.shopOrderList;
+                    _self.discernReceiptList = data.discernReceiptList;
+                    _self.returnedPurchaseList = data.returnedPurchaseList;
+                    _self.voucherList = data.voucher;
+                    _self.isRequset = false;
+                } else {
+                    _self.$message.error(response.msg)
+                }
+            })
+        },
+        // 确认订单按钮
+        handeleConfirm(){
+            // 判断如果是手机端且是微信手机浏览器跳转丽格小程序
+            if(this.isWeChatBrowser && !isPC){
+                this.handleWechatMinLink()
+            }else{
+                CAIMEI.Alert('请在手机微信内打开本页面进行确认订单操作。', '确定');
+            }
+        },
+        // 获取小程序路径并跳转
+        handleWechatMinLink() {
+            UserApi.mcareWechatMinLink(this.linkParams, function (response) {
+                if (response.code === 0) {
+                    location.href = response.data
+                } else {
+                    console.log('跳转小程序异常')
+                }
+            })
+        },
+        setEvens () { //设置环境
+            var siteEnv = $("#siteEnv").val();
+            var map = {
+                0: 'develop',
+                1: 'trial',
+                2: 'release',
+            }
+            return map[siteEnv];
+        }
+    },
+    created: function () {
+        const userAgent = navigator.userAgent.toLowerCase();
+        this.isWeChatBrowser = userAgent.match(/MicroMessenger/i);
+    },
+    mounted: function () {
+        this.shopOrderId = CAIMEI.getUrlParam('shopOrderId');
+        this.linkParams.query = `shopOrderId=${this.shopOrderId}`
+        this.openFullScreen2(this.shopOrderId);
+    }
+});

+ 50 - 0
src/main/resources/static/js/supplier-center/order/order-share-login.js

@@ -0,0 +1,50 @@
+/**
+ * Created by xw on 2020/7/22.
+ */
+var InformationPage = new Vue({
+    el:"#shareContent",
+    data: {
+        isEfficacy:false,
+        form:{
+            shareCode:'',
+            shopOrderId:''
+        },
+        rules: {
+            shareCode: [{required: true,message: '请输入分享码',trigger: 'blur'}]
+        }
+    },
+    computed: {
+        disabled() {
+            // 分享码长度是否符合要求
+            return this.form.shareCode.trim().length < 4
+        }
+    },
+    methods: {
+        handleConfirm(formName){
+            const _self = this;
+            this.$refs[formName].validate(async valid => {
+                if (valid) {
+                    _self.handleCheckOrderShareCode(_self.form)
+                }
+            })
+        },
+        // 订单分享码校验
+        handleCheckOrderShareCode(params){
+            const _self = this;
+            SupplierApi.checkShopOrderShareCode(params,function (response) {
+                if(response.code===0){
+                    window.location.href = '/order-share-details.html?shopOrderId='+response.data
+                }else{
+                    _self.$message.error(response.msg)
+                }
+            })
+        }
+    },
+    created: function () {
+
+    },
+    mounted: function () {
+        this.form.shopOrderId = getUrlParam("shopOrderId");
+    }
+});
+

+ 64 - 0
src/main/resources/static/js/supplier-center/order/orderlist.js

@@ -27,6 +27,9 @@ var orderList = new Vue({
                 amount: ''
             },
             dialogFormVisible: false,
+            dialogShareVisible: false,
+            dialogShareCode: '',
+            dialogShareLink: '',
             rules: {
                 amount: [{required: true, validator: this.picValidator, trigger: 'blur'}]
             },
@@ -163,6 +166,7 @@ var orderList = new Vue({
         },
         // 按钮操作
         handeleDropdown(type, shopOrderId) {
+            const _self = this;
             switch (type) {
                 case 1:// 发货
                     window.location.href='/supplier/order/delivery.html?shopOrderId='+shopOrderId;
@@ -185,8 +189,68 @@ var orderList = new Vue({
                 case 7:// 修改订单
                     window.location.href = '/supplier/order/order-edit.html?shopOrderId='+shopOrderId;
                     break
+                case 8:// 分享订单
+                    this.handleOrderShareCode(shopOrderId)
+                    break
+                case 9:// 取消订单
+                    this.$confirm('确定取消该订单吗?', '提示', {
+                        confirmButtonText: '确定',
+                        cancelButtonText: '取消',
+                        type: 'warning'
+                    }).then(() => {
+                        _self.handleCancelOrder(shopOrderId)
+                    }).catch(() => {
+                        console.log('取消删除')
+                    });
+                    break
             }
         },
+        // 取消订单
+        handleCancelOrder(shopOrderId){
+            const _self = this;
+            SupplierApi.cancelOrder({ shopOrderId:shopOrderId },function (response) {
+                if(response.code===0){
+                    _self.$message.success('订单已取消');
+                    _self.getList()
+                }else{
+                    _self.$message.error(response.msg)
+                }
+            })
+        },
+        // 获取订单分享码
+        handleOrderShareCode(shopOrderId){
+            const _self = this;
+            SupplierApi.shopOrderShareCode({ shopOrderId:shopOrderId },function (response) {
+                if(response.code===0){
+                    const data = response.data
+                    _self.dialogShareCode = data.shareCode
+                    _self.dialogShareLink = data.link
+                    _self.dialogShareVisible = true
+                }else{
+                    _self.$message.error(response.msg)
+                }
+            })
+        },
+        // 复制分享链接
+        handleCopy(){
+            const hiddenInput = document.createElement('textarea');
+            hiddenInput.style.position = 'fixed';
+            hiddenInput.style.left = '0';
+            hiddenInput.style.top = '0';
+            hiddenInput.style.opacity = '0';
+            hiddenInput.value = this.dialogShareLink;
+            // 将隐藏的 `<textarea>` 元素添加到文档中
+            document.body.appendChild(hiddenInput);
+            // 选中隐藏的 `<textarea>` 中的文本
+            hiddenInput.focus();
+            hiddenInput.select();
+            // 执行复制操作
+            document.execCommand('copy');
+            // 删除隐藏的 `<textarea>` 元素
+            document.body.removeChild(hiddenInput);
+            // 提示用户文本已复制到剪贴板
+            this.$message.success('复制链接成功');
+        },
         //订单详情
         handleDetail (shopOrderId) {
             window.location.href = '/supplier/order/detail.html?shopOrderId='+shopOrderId;

+ 2 - 2
src/main/resources/static/js/supplier/index.js

@@ -129,7 +129,7 @@ var supplierHome = new Vue({
                         }
                         _self.mainProducts = res.data;
                     } else {
-                        CAIMEI.Alert(res.msg, '确定');
+                        _self.$message.error(res.msg)
                     }
                 }
             );
@@ -161,7 +161,7 @@ var supplierHome = new Vue({
                         console.log('productLists',_self.productLists)
                         _self.requestFlag = true;
                     } else {
-                        CAIMEI.Alert(res.msg, '确定');
+                        _self.$message.error(res.msg)
                     }
                 }
             );

+ 26 - 0
src/main/resources/templates/account/login-fast.html

@@ -0,0 +1,26 @@
+<!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/base/form.css(v=${version})}" rel="stylesheet" type="text/css">
+    <link th:href="@{/css/account/login-fast.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
+</head>
+<body>
+<!-- 引用头部 -->
+<template th:replace="account/components/header"></template>
+<!-- 二级页面 -->
+<div id="loginPage">
+    <div class="loginWrap clear" v-cloak>
+
+    </div>
+</div>
+
+<!-- 引入底部 -->
+<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/account/login-fast.js(v=${version})}"></script>
+</body>
+</html>

+ 3 - 3
src/main/resources/templates/components/header.html

@@ -94,13 +94,13 @@
                 <div class="search auto-input" id="autoInput">
                     <div class="jqSelect">
                         <div class="pc">
-                            <span data-select="0">品</span>
+                            <span data-select="0">品</span>
                             <ul>
-                                <li data-id="0">品</li>
+                                <li data-id="0">品</li>
                             </ul>
                         </div>
                         <select>
-                            <option value="0">品</option>
+                            <option value="0">品</option>
                             <option value="1">供应商</option>
 <!--                            <option value="2">项目仪器</option>-->
                         </select>

+ 0 - 9
src/main/resources/templates/shopping/confirm.html

@@ -231,20 +231,11 @@
                             </template>
 
                             <template v-if="supplier.postageFlag === 1">
-
                                 <el-popover
                                         v-if="supplier.coldChain>0"
                                         placement="bottom"
                                         width="240"
                                         trigger="click">
-<!--                                    <div class="freight-radio" v-if="supplier.designatedFlag !== 1">-->
-<!--                                        <el-radio-group-->
-<!--                                                v-model="supplier.handlePostageFlag"-->
-<!--                                                @change="handlePostageFlag($event,supplier)">-->
-<!--                                            <el-radio :label="1">不包邮</el-radio>-->
-<!--                                            <el-radio :label="2">到付</el-radio>-->
-<!--                                        </el-radio-group>-->
-<!--                                    </div>-->
                                     <template v-if="supplier.handlePostageFlag === 1">
                                         <div class="freight-radio" v-if="supplier.coldChain>0">
                                             <p style="float: left;">冷链运输费</p>

+ 1 - 0
src/main/resources/templates/supplier-center/components/tableft.html

@@ -6,6 +6,7 @@
             <!--<a href="/supplier/dashboard.html">我的首页</a>-->
             <a href="/supplier/order/list.html?state=0">我的订单</a>
             <a href="/supplier/order/settlement.html">结算管理</a>
+            <a href="/supplier/order/order-create.html" v-if="isShopIsOrder">帮机构下单</a>
 <!--            <a href="/">评价管理</a>-->
         </div>
     </div>

+ 26 - 6
src/main/resources/templates/supplier-center/order/detail.html

@@ -32,13 +32,14 @@
                 <div class="userinfo">
                     <p class="info"><span>买家信息</span></p>
                     <div class="user">
-                        <p>买家名称:<span>{{ userInfo.name ? userInfo.name : '' }}</span></p>
+                        <p>买家名称:<span>{{ userInfo.name ? userInfo.name : '暂无' }}</span></p>
                         <p>收货人:<span>{{ userInfo.receiver ? userInfo.receiver : '' }}</span></p>
                         <p>联系方式:<span>{{ userInfo.mobile ? userInfo.mobile : '' }}</span></p>
                     </div>
                     <p class="address">收货地址:<span>{{userInfo.address}}</span></p>
                     <p class="address">留言:<span>{{ order.note ? order.note : '无' }}</span></p>
                 </div>
+                <div class="order-tips" v-if="order.status === 0">订单尚未确认,请点击【操作-分享订单】将订单分享给买家,买家确认订单后才能进行订单相关操作。</div>
                 <div class="product-info">
                     <div class="price">
                         <p class="protitle">商品金额:<span class="red">¥{{order.productAmount | amountfilters}}</span></p>
@@ -70,7 +71,7 @@
                       <div class="info-title">订单信息</div>
                       <div class="content">
                           <div class="order-item">
-                            <p>订单编号:{{order.shopOrderNo}}</p>
+                            <p><el-tag type="success" effect="dark" size="mini" v-if="order.orderType === 0">采购员</el-tag>订单编号:{{order.shopOrderNo}}</p>
                             <p class="state">{{order.status | statusFilters}}</p>
                           </div>
                           <div class="order-item pay">
@@ -83,7 +84,10 @@
                             <p>商品金额:<span class="red">¥{{ order.productAmount | amountfilters }}</span> </p>
                             <p>结算商品金额:<span class="red">¥{{ order.shopProductAmount | amountfilters }}</span> </p>
 <!--                            <p>结算税费:<span class="red">¥{{ order.shopTaxFee | amountfilters }}</span> </p>-->
-                            <p>订单来源:<span class="red">{{ order.organizeId === 0 ? '【采美平台】' : '【丽格集采联盟平台】' }}</span></p>
+                            <p  v-if="order.status !== 0">
+                                订单来源:
+                                <span class="red">{{ order.organizeId === 0 ? '【采美平台】' : '【丽格集采联盟平台】' }}</span>
+                            </p>
                           </div>
                           <div class="order-item">
                               <p>结算运费:<span class="red">{{ order.postageInfo }}</span> </p>
@@ -164,13 +168,19 @@
                             <el-dropdown class="dropdown" trigger="click" placement="top">
                                 <el-button type="primary">操作</el-button>
                                 <el-dropdown-menu slot="dropdown" >
-                                    <el-dropdown-item v-if="order.checkFlag === 2">
+                                    <el-dropdown-item v-if="order.status === 0">
+                                        <div @click="handeleDropdown(8,order.shopOrderId)">分享订单</div>
+                                    </el-dropdown-item>
+                                    <el-dropdown-item v-if="order.status === 0">
+                                        <div @click="handeleDropdown(9,order.shopOrderId)">取消订单</div>
+                                    </el-dropdown-item>
+                                    <el-dropdown-item v-if="order.status !==0 && order.checkFlag === 2">
                                         <div @click="handeleDropdown(6,order.shopOrderId)">上传线下支付凭证</div>
                                     </el-dropdown-item>
-                                    <el-dropdown-item v-if="order.checkFlag === 2">
+                                    <el-dropdown-item v-if="order.status !==0 && order.checkFlag === 2">
                                         <div @click="handeleDialogFormVisible"> 确认收款金额</div>
                                     </el-dropdown-item>
-                                    <el-dropdown-item v-if="order.receiptStatus === 1 || (order.accountAmount > 0 && order.accountAmount < order.needPayAmount)">
+                                    <el-dropdown-item v-if="order.status !==0 && order.receiptStatus === 1 || (order.accountAmount > 0 && order.accountAmount < order.needPayAmount)">
                                         <div @click="handeleDropdown(7,order.shopOrderId)"> 修改订单</div>
                                     </el-dropdown-item>
                                     <el-dropdown-item v-if="[2,12,13,21,22,23,31,32,33].indexOf(order.status)!=-1">
@@ -209,6 +219,16 @@
                     <el-button type="primary" :disabled="disabled" @click="handleChangOrder">确定</el-button>
                 </div>
             </el-dialog>
+            <!--分享订单-->
+            <el-dialog title="分享订单" :visible.sync="dialogShareVisible" :width="isPC ? '380px' : '60vw'" style="margin: 200px auto;">
+                <p class="el-dialog-p">请复制如下链接后发送给客户,并告知客户分享码,客户打开链接后需要输入分享码才能对订单进行确认。</p>
+                <p class="el-dialog-p">
+                    {{ dialogShareLink }}
+                    <el-tag type="" effect="dark" size="mini" style="cursor: pointer;" @click="handleCopy">复制</el-tag>
+                </p>
+                <h1 class="el-dialog-h1">分享码:<span>{{ dialogShareCode }}</span></h1>
+                <p class="el-dialog-red"><i class="el-icon-warning-outline"></i>分享码有效期72小时,失效后需要重新分享获取新的分享码。</p>
+            </el-dialog>
         </div>
     </div>
 </div>

+ 34 - 6
src/main/resources/templates/supplier-center/order/list.html

@@ -95,15 +95,24 @@
                             <el-option label="【丽格集采联盟平台】" value="4"></el-option>
                         </el-select>
                     </div>
+                    <div class="form-row">
+                        <span v-if="isPC">订单类型:</span>
+                        <el-select v-model="listQuery.orderType" class="state" clearable @change="getList">
+                            <el-option label="所有" value="" ></el-option>
+                            <el-option label="机构自主订单" value="1"></el-option>
+                            <el-option label="供应商采购员订单" value="0"></el-option>
+                        </el-select>
+                    </div>
                     <div id="newBtn">
                         <el-button type="primary" @click="getList">查询</el-button>
                     </div>
                 </div>
                 <div class="order-content-main"  v-if="results.length>0">
                      <div class="supplier-main order" v-for="(order,index) in results" :key="index">
+                        <div class="order-tips" v-if="order.status === 0">订单尚未确认,请点击【操作-分享订单】将订单分享给买家,买家确认订单后才能进行订单相关操作。</div>
                         <div class="order-title" >
                             <div class="title-name">
-                                <p>订单编号:{{order.shopOrderNo}}</p>
+                                <p> <el-tag type="success" effect="dark" size="mini" v-if="order.orderType === 0">采购员</el-tag>订单编号:{{order.shopOrderNo}}</p>
                                 <p class="state">{{order.status | statusFilters}}</p>
                             </div>
                             <div class="title-time">
@@ -128,8 +137,11 @@
                             <div class="order-item">
                                 <p>商品金额:<span class="red">¥{{order.productAmount| amountfilters}}</span> </p>
                                 <p>结算商品金额:<span class="red">¥{{order.shopProductAmount | amountfilters}}</span> </p>
-<!--                                <p>结算税费:<span class="red">¥{{order.shopTaxFee| amountfilters}}</span> </p>-->
-                                <p>订单来源:<span class="red">{{ order.organizeId === 0 ? '【采美平台】' : '【丽格集采联盟平台】' }}</span></p>
+<!--                             <p>结算税费:<span class="red">¥{{order.shopTaxFee| amountfilters}}</span> </p>-->
+                                <p  v-if="order.status !== 0">
+                                    订单来源:
+                                    <span class="red">{{ order.organizeId === 0 ? '【采美平台】' : '【丽格集采联盟平台】' }}</span>
+                                </p>
                             </div>
                             <div class="order-item">
                                 <p>结算运费:<span class="red">{{order.postageInfo }}</span> </p>
@@ -163,13 +175,19 @@
                                <el-dropdown class="dropdown" trigger="click" placement="top">
                                    <el-button type="primary">操作</el-button>
                                    <el-dropdown-menu slot="dropdown">
-                                       <el-dropdown-item v-if="order.checkFlag === 2">
+                                       <el-dropdown-item v-if="order.status === 0">
+                                           <div @click="handeleDropdown(8,order.shopOrderId)">分享订单</div>
+                                       </el-dropdown-item>
+                                       <el-dropdown-item v-if="order.status === 0">
+                                           <div @click="handeleDropdown(9,order.shopOrderId)">取消订单</div>
+                                       </el-dropdown-item>
+                                       <el-dropdown-item v-if="order.status !==0 && order.checkFlag === 2">
                                          <div @click="handeleDropdown(6,order.shopOrderId)">上传线下支付凭证</div>
                                        </el-dropdown-item>
-                                       <el-dropdown-item v-if="order.checkFlag === 2">
+                                       <el-dropdown-item v-if="order.status !==0 && order.checkFlag === 2">
                                          <div @click="handeleDialogFormVisible(order)"> 确认收款金额</div>
                                        </el-dropdown-item>
-                                       <el-dropdown-item v-if="order.receiptStatus === 1 || (order.accountAmount > 0 && order.accountAmount < order.needPayAmount)">
+                                       <el-dropdown-item v-if="order.status !==0 && order.receiptStatus === 1 || (order.accountAmount > 0 && order.accountAmount < order.needPayAmount)">
                                          <div @click="handeleDropdown(7,order.shopOrderId)"> 修改订单</div>
                                        </el-dropdown-item>
                                        <el-dropdown-item v-if="[11,12,21,22,31,32].indexOf(order.status)!=-1">
@@ -241,6 +259,16 @@
                     <el-button type="primary" :disabled="disabled" @click="handleChangOrder">确定</el-button>
                 </div>
             </el-dialog>
+            <!--分享订单-->
+            <el-dialog title="分享订单" :visible.sync="dialogShareVisible" :width="isPC ? '380px' : '60vw'" style="margin: 200px auto;">
+                <p class="el-dialog-p">请复制如下链接后发送给客户,并告知客户分享码,客户打开链接后需要输入分享码才能对订单进行确认。</p>
+                <p class="el-dialog-p">
+                    {{ dialogShareLink }}
+                    <el-tag type="" effect="dark" size="mini" style="cursor: pointer;" @click="handleCopy">复制</el-tag>
+                </p>
+                <h1 class="el-dialog-h1">分享码:<span>{{ dialogShareCode }}</span></h1>
+                <p class="el-dialog-red"><i class="el-icon-warning-outline"></i>分享码有效期72小时,失效后需要重新分享获取新的分享码。</p>
+            </el-dialog>
         </div>
   </div>
 </div>

+ 422 - 0
src/main/resources/templates/supplier-center/order/order-create.html

@@ -0,0 +1,422 @@
+<!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/base/center.css(v=${version})}" rel="stylesheet" type="text/css">
+  <link th:href="@{/css/supplier-center/order/order-create.css(v=${version})}" rel="stylesheet" type="text/css">
+  <template th:replace="components/analysis"></template>
+</head>
+<body>
+<!-- 引用头部 -->
+<template th:replace="components/header"></template>
+
+<!-- 我的采美 -->
+<div id="seeDetail" v-cloak>
+  <div class="navLayout" v-cloak>
+    <div class="crumbs" v-if="isPC">
+      <span>我的交易</span>
+      <span>&gt;</span>
+      <span>我的订单</span>
+      <span>&gt;</span>
+      <span>帮机构下单</span>
+    </div>
+    <div class="wrap clear">
+      <!--左侧面包屑-->
+      <template th:replace="supplier-center/components/tableft"></template>
+      <div class="right">
+        <div class="order-title">
+          <p class="info-title">收货人信息</p>
+        </div>
+
+        <div class="order-address-form">
+          <template v-if="isPC">
+            <el-form ref="dataForm" :rules="rules" :model="addressForm">
+              <el-form-item label="收货人:" label-position="left" prop="receiver" :rules="rules.receiver" label-width="98px">
+                <el-input v-model="addressForm.receiver" placeholder="请填写收货人"  maxlength="40"></el-input>
+              </el-form-item>
+              <el-form-item label="联系方式:" label-position="left" prop="mobile" :rules="rules.mobile" label-width="98px">
+                <el-input v-model="addressForm.mobile" placeholder="请填写联系方式"  maxlength="11"></el-input>
+              </el-form-item>
+              <el-row :gutter="24" class="box-row">
+                <el-col :span="8">
+                  <el-form-item label="联系地址:" label-position="left" prop="provinceId" :rules="rules.provinceId" label-width="98px">
+                    <el-select v-model="addressForm.provinceId" clearable @change="getCityList(addressForm.provinceId)">
+                      <el-option value="" label="请选择"></el-option>
+                      <el-option v-for="(item, index) in provinceList" :key="index" :label="item.name" :value="item.id"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="6">
+                  <el-form-item label="" prop="cityId" :rules="rules.cityId" label-position="false" label-width="0px">
+                    <el-select v-model="addressForm.cityId" clearable @change="getTownList(addressForm.cityId)">
+                      <el-option value="" label="请选择"></el-option>
+                      <el-option v-for="(item, index) in cityList" :key="index" :label="item.name" :value="item.id"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="6">
+                  <el-form-item label="" prop="townId" :rules="rules.townId" label-position="false" label-width="0px">
+                    <el-select v-model="addressForm.townId" clearable>
+                      <el-option value="" label="请选择"></el-option>
+                      <el-option v-for="(item, index) in townList" :key="index" :label="item.name" :value="item.id"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-form-item label=""  prop="address" label-position="left"  :rules="rules.address" label-width="98px">
+                <el-input v-model="addressForm.address"
+                          type="textarea"
+                          placeholder="建议您如实填写详细收货地址,例如:街道名称,门牌号码,楼层和房间号等信息"
+                          maxlength="200"
+                          :autosize="{ minRows: 5, maxRows: 6}">
+                </el-input>
+              </el-form-item>
+            </el-form>
+          </template>
+          <template v-else>
+            <el-form ref="dataForm" :rules="rules" :model="addressForm">
+              <el-form-item label="收货人:" label-position="top" prop="receiver" :rules="rules.receiver">
+                <el-input v-model="addressForm.receiver" placeholder="请填写收货人"  maxlength="40"></el-input>
+              </el-form-item>
+              <el-form-item label="联系方式:" label-position="top" prop="mobile" :rules="rules.mobile">
+                <el-input v-model="addressForm.mobile" placeholder="请填写联系方式"  maxlength="11"></el-input>
+              </el-form-item>
+              <el-row :gutter="24" class="box-row">
+                <el-col :span="8">
+                  <el-form-item label="省:" label-position="top" prop="provinceId" :rules="rules.provinceId">
+                    <el-select v-model="addressForm.provinceId" clearable @change="getCityList(addressForm.provinceId)">
+                      <el-option value="" label="请选择"></el-option>
+                      <el-option v-for="(item, index) in provinceList" :key="index" :label="item.name" :value="item.id"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                  <el-form-item label="市:" prop="cityId" :rules="rules.cityId" label-position="top">
+                    <el-select v-model="addressForm.cityId" clearable @change="getTownList(addressForm.cityId)">
+                      <el-option value="" label="请选择"></el-option>
+                      <el-option v-for="(item, index) in cityList" :key="index" :label="item.name" :value="item.id"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                  <el-form-item label="区县:" prop="townId" :rules="rules.townId" label-position="top">
+                    <el-select v-model="addressForm.townId" clearable>
+                      <el-option value="" label="请选择"></el-option>
+                      <el-option v-for="(item, index) in townList" :key="index" :label="item.name" :value="item.id"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-form-item label="联系地址:"  prop="address" label-position="top"  :rules="rules.address">
+                <el-input v-model="addressForm.address"
+                          type="textarea"
+                          placeholder="建议您如实填写详细收货地址,例如:街道名称,门牌号码,楼层和房间号等信息"
+                          maxlength="200"
+                          :autosize="{ minRows: 5, maxRows: 6}">
+                </el-input>
+              </el-form-item>
+            </el-form>
+          </template>
+        </div>
+        <div class="order-title">
+          <p class="info-title">商品清单</p>
+        </div>
+        <div class="order-product-form clear">
+          <div v-if="isPC" class="cartTit clear">
+            <div class="c1">商品信息</div>
+            <div class="c2">规格</div>
+            <div class="c3">单价(元)</div>
+            <div class="c4">数量</div>
+            <div class="c5">小计(元)</div>
+          </div>
+          <div class="order-product-none" v-if="productsArr.length === 0">
+            <p>请添加采购商品</p>
+            <el-button type="primary" style="width: 128px;" @click="handleShowVisible">添加</el-button>
+          </div>
+          <template v-if="productsArr.length > 0">
+            <div class="order-product-main">
+              <div class="order-product-item" v-for="(pros, index) in productsArr" :key="index">
+                <div class="c1">
+                  <div class="product-img">
+                    <img :src="pros.image" :alt="pros.name">
+                  </div>
+                  <div class="product-name">
+                    <p> {{ pros.name }} </p>
+                  </div>
+                </div>
+                <div class="c2">
+                  <p v-if="!isPC" class="tit">规格</p>
+                  <p> {{ pros.unit }} </p>
+                </div>
+                <div class="c3">
+                  <p v-if="!isPC" class="tit">单价</p>
+                  <p> ¥{{ pros.price | amountfilters }} </p>
+                </div>
+                <div class="c4">
+                  <p v-if="!isPC" class="tit">数量</p>
+                  <p> {{ pros.number }} </p>
+                </div>
+                <div class="c5">
+                  <p v-if="!isPC" class="tit">小计</p>
+                  <p> ¥{{ pros.totalPrice | amountfilters }} </p>
+                </div>
+                <div class="item-delete" @click="handleDelete(index)">
+                  <i class="el-icon-close"></i>
+                </div>
+              </div>
+            </div>
+            <div class="order-product-total">
+              <div class="order-product-note">
+                留言:<el-input v-model="supplier.note" placeholder="告诉卖家您的特殊要求"  maxlength="50"></el-input>
+              </div>
+              <div class="order-product-price">
+                <div class="freight">
+                  <template v-if="supplier.postageFlag === 0">
+                    运费:<span>包邮</span>
+                  </template>
+                  <template v-if="supplier.postageFlag === 1">
+                    <el-popover
+                            v-if="supplier.coldChain>0"
+                            placement="bottom"
+                            width="240"
+                            trigger="click">
+                      <template v-if="supplier.handlePostageFlag === 1">
+                        <div class="freight-radio" v-if="supplier.coldChain>0">
+                          <p style="float: left;">冷链运输费</p>
+                          <p style="float: right;">
+                            <span>¥{{ supplier.coldChain | NumFormat }}</span>
+                            <el-checkbox v-model="supplier.isColdChina" @change="handleChangeColdChina($event,supplier)"></el-checkbox>
+                          </p>
+                        </div>
+                        <div class="freight-radio" v-if="supplier.designatedFlag !== 1">
+                          <p style="float: left;">其他运费</p>
+                          <p style="float: right;"><span>¥{{ supplier.postage | NumFormat }}</span></p>
+                        </div>
+                        <div class="freight-radio">
+                          <p style="float: left;">总运费</p>
+                          <p style="float: right;color: #F94B4B;"><span>¥{{ handleTotalPostage(supplier)  | amountfilters }}</span></p>
+                        </div>
+                      </template>
+                      <template v-if="supplier.handlePostageFlag === 2">
+                        <div class="freight-radio" v-if="supplier.coldChain>0">
+                          <p style="float: left;">冷链运输费</p>
+                          <p style="float: right;">
+                            <span>¥{{ supplier.coldChain | NumFormat }}</span>
+                            <el-checkbox v-model="supplier.isColdChina" @change="handleChangeColdChina($event,supplier)"></el-checkbox>
+                          </p>
+                        </div>
+                        <div class="freight-radio">
+                          <p style="float: left;">其他运费</p>
+                          <p style="float: right;"><span>到付</span></p>
+                        </div>
+                        <div class="freight-radio">
+                          <p style="float: left;">总运费</p>
+                          <p style="float: right;color: #F94B4B;">
+                            <span v-if="supplier.isColdChina">¥{{ supplier.coldChain | amountfilters }}</span>
+                            <span v-else>到付</span>
+                          </p>
+                        </div>
+                      </template>
+                      <span slot="reference">
+                        运费:
+                        <template v-if="supplier.handlePostageFlag === 1">
+                             <span>¥{{ handleTotalPostage(supplier) | NumFormat }}</span>
+                        </template>
+                        <template v-if="supplier.handlePostageFlag === 2">
+                             <span v-if="supplier.isColdChina">¥{{ handleTotalPostage(supplier) | amountfilters }}</span>
+                             <span v-else>到付</span>
+                        </template>
+                        <i class="el-icon-caret-bottom"></i>
+                    </span>
+                    </el-popover>
+                    <template v-else>
+                    <span>
+                        运费:
+                        <span>¥{{ handleTotalPostage(supplier) | amountfilters }}</span>
+                    </span>
+                    </template>
+                  </template>
+                  <template v-if="supplier.postageFlag === 2">
+                    运费:
+                    <span>到付</span>
+                  </template>
+                </div>
+                <div class="order-totalPrice">
+                  <span>合计:</span>
+                  <span class="red">¥{{ supplier.totalPrice  | amountfilters }}</span>
+                </div>
+              </div>
+            </div>
+          </template>
+        </div>
+        <div class="order-product-bsn" v-if="productsArr.length > 0">
+          <div class="order-product-add">
+            <span>继续添加商品</span>
+            <el-button type="primary" style="width: 128px;" @click="handleShowVisible">添加</el-button>
+          </div>
+        </div>
+        <div class="order-title">
+          <p class="info-title">发票信息</p>
+        </div>
+        <div class="order-invoice-form">
+          <el-form ref="invoiceForm" :rules="rules" :model="invoiceForm">
+            <div class="order-invoice-radio">
+              <el-radio v-model="invoiceForm.type" :label="0">不开发票</el-radio>
+              <el-radio v-model="invoiceForm.type" :label="1">普通发票</el-radio>
+              <el-radio v-model="invoiceForm.type" :label="2">增值税发票</el-radio>
+            </div>
+            <template v-if="invoiceForm.type===1">
+              <div class="order-invoice-radio">
+                <el-radio v-model="invoiceForm.headingType" :label="0">个人</el-radio>
+                <el-radio v-model="invoiceForm.headingType" :label="1">单位</el-radio>
+              </div>
+              <el-form-item label="发票抬头:" label-position="left" prop="invoiceTitle" :rules="rules.invoiceTitle" label-width="98px">
+                <el-input v-model="invoiceForm.invoiceTitle" placeholder="请填写发票抬头"  maxlength="20"></el-input>
+              </el-form-item>
+              <template v-if="invoiceForm.headingType===1">
+                <el-form-item label="单位税号:" label-position="left" prop="corporationTaxNum" :rules="rules.corporationTaxNum" label-width="98px">
+                  <el-input v-model="invoiceForm.corporationTaxNum" placeholder="请填写单位税号"  maxlength="20"></el-input>
+                </el-form-item>
+                <el-form-item label="注册地址:" label-position="left" label-width="98px">
+                  <el-input v-model="invoiceForm.registeredAddress" placeholder="请填写注册地址"  maxlength="40"></el-input>
+                </el-form-item>
+                <el-form-item label="注册电话:" label-position="left" label-width="98px">
+                  <el-input v-model="invoiceForm.registeredPhone" placeholder="请填写注册电话"  maxlength="15"></el-input>
+                </el-form-item>
+                <el-form-item label="开户银行:" label-position="left" label-width="98px">
+                  <el-input  v-model="invoiceForm.openBank" placeholder="请填写开户银行"  maxlength="15"></el-input>
+                </el-form-item>
+                <el-form-item v-show="invoiceForm.headingType==1" label="银行账号:" label-position="left" label-width="98px">
+                  <el-input v-model="invoiceForm.bankAccountNo" placeholder="请填写银行账号"  maxlength="19"></el-input>
+                </el-form-item>
+              </template>
+            </template>
+            <template v-if="invoiceForm.type===2">
+              <el-form-item label="发票抬头:" label-position="left" prop="invoiceTitle" :rules="rules.invoiceTitle" label-width="98px">
+                <el-input v-model="invoiceForm.invoiceTitle" placeholder="请填写发票抬头"  maxlength="20"></el-input>
+              </el-form-item>
+              <el-form-item label="单位税号:" label-position="left" prop="corporationTaxNum" :rules="rules.corporationTaxNum" label-width="98px">
+                <el-input v-model="invoiceForm.corporationTaxNum" placeholder="请填写单位税号"  maxlength="20"></el-input>
+              </el-form-item>
+              <el-form-item label="注册地址:" label-position="left" prop="registeredAddress" :rules="rules.registeredAddress" label-width="98px">
+                <el-input v-model="invoiceForm.registeredAddress" placeholder="请填写注册地址"  maxlength="20"></el-input>
+              </el-form-item>
+              <el-form-item label="注册电话:" label-position="left" prop="registeredPhone" :rules="rules.registeredPhone" label-width="98px">
+                <el-input v-model="invoiceForm.registeredPhone" placeholder="请填写注册电话"  maxlength="20"></el-input>
+              </el-form-item>
+              <el-form-item label="开户银行:" label-position="left" prop="openBank" :rules="rules.openBank" label-width="98px">
+                <el-input v-model="invoiceForm.openBank" placeholder="请填写开户银行"  maxlength="20"></el-input>
+              </el-form-item>
+              <el-form-item label="银行账号:" label-position="left" prop="bankAccountNo" :rules="rules.bankAccountNo" label-width="98px">
+                <el-input v-model="invoiceForm.bankAccountNo" placeholder="请填写银行账号"  maxlength="19"></el-input>
+              </el-form-item>
+            </template>
+          </el-form>
+        </div>
+        <div class="order-el-confirm" :class="isFiexd ? 'fiexd' : 'float'">
+          <div class="inner">
+            <el-button type="primary" @click="handleConfirm" :disabled="submitLoading" :loading="submitLoading">提交订单</el-button>
+          </div>
+        </div>
+      </div>
+    </div>
+    <!-- 添加商品弹窗  -->
+    <el-dialog
+            title="添加商品"
+            :visible.sync="goodsDialogVisible"
+            width="1100px"
+            :close-on-click-modal="false"
+            :show-close="false"
+    >
+      <div class="filter-container">
+        <div class="filter-control">
+          <span>商品名称:</span>
+          <el-input v-model="listQuery.name" placeholder="商品名称" clearable></el-input>
+        </div>
+        <div class="filter-control">
+          <el-button type="primary" @click="getProductList">查询</el-button>
+        </div>
+      </div>
+      <el-table ref="table" v-loading="isLoading" :data="productsList" height="400px" border @selection-change="handleSelectionChange">
+        <el-table-column type="selection" width="50" :selectable="handleSelectable"></el-table-column>
+        <el-table-column prop="mainImage" label="商品图片" align="center" width="100">
+          <template slot-scope="{ row }">
+            <img :src="row.mainImage" :alt="row.name" style="width: 40px;height: 40px;">
+          </template>
+        </el-table-column>
+        <el-table-column prop="name" label="商品名称" align="center"></el-table-column>
+        <el-table-column prop="unit" label="规格" align="center">
+          <template slot-scope="{ row }">
+            <el-select v-model="row.skuId" @change="handleChangeSku(row)">
+              <el-option v-for="(sku, index) in row.skus" :key="index" :label="sku.unit" :value="sku.skuId"></el-option>
+            </el-select>
+          </template>
+        </el-table-column>
+        <el-table-column prop="price" label="售价" align="center">
+          <template slot-scope="{ row }">
+            <el-input v-model="row.price" placeholder="售价">
+              <template slot="prepend">¥</template>
+            </el-input>
+          </template>
+        </el-table-column>
+        <el-table-column prop="count" label="采购数量" align="center" width="150">
+          <template slot-scope="{ row }">
+            <el-input
+                    v-model="row.count"
+                    style="width: 100px"
+                    placeholder="商品数量"
+                    @blur="handleChangeNumber(row)"
+                    maxlength="10">
+            </el-input>
+          </template>
+        </el-table-column>
+      </el-table>
+      <!-- 页码 -->
+      <el-pagination
+                style="padding: 20px 0"
+                 background
+                 :small="false"
+                 @current-change="handleCurrentChange"
+                 :current-page="listQuery.pageNum"
+                 :page-size="listQuery.pageSize"
+                 layout="total, prev, pager, next, jumper"
+                 :total="total">
+      </el-pagination>
+      <div slot="footer">
+        <el-button @click="handleCanle">取 消</el-button>
+        <el-button type="primary" :disabled="disabled" @click="handleAddProConfirm">确 定</el-button>
+      </div>
+    </el-dialog>
+    <!-- 商品价格异常弹窗  -->
+    <el-dialog
+            title="提示"
+            :visible.sync="abnormalDialogVisible"
+            width="700px"
+            :close-on-click-modal="false"
+            :show-close="false"
+    >
+      <el-tag type="danger" style="margin: 5px 0;">以下商品修改后的单价会导致不能覆盖成本和平台服务费,请重新修改。</el-tag>
+      <el-table ref="table" :data="abnormalProductList" border >
+        <el-table-column prop="image" label="商品图片" align="center">
+          <template slot-scope="{ row }">
+            <img :src="row.image" :alt="row.name" style="width: 40px;height: 40px;">
+          </template>
+        </el-table-column>
+        <el-table-column prop="name" label="商品名称" align="center"></el-table-column>
+      </el-table>
+      <div slot="footer">
+        <el-button type="primary" @click="abnormalDialogVisible = false">确定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+  <!-- 引入底部 -->
+  <template th:replace="components/footer"></template>
+  <template th:replace="components/foot-link"></template>
+  <script charset="utf-8" type="text/javascript" th:src="@{/js/center.js(v=${version})}"></script>
+  <script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/order.service.js(v=${version})}"></script>
+  <script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/supplier.service.js(v=${version})}"></script>
+  <script charset="utf-8" type="text/javascript" th:src="@{/js/supplier-center/order/order-create.js(v=${version})}"></script>
+</body>
+</html>

+ 24 - 3
src/main/resources/templates/supplier-center/order/order-edit.html

@@ -23,7 +23,7 @@
             <span>&gt;</span>
             <span>我的订单</span>
             <span>&gt;</span>
-            <span>订单详情</span>
+            <span>修改订单</span>
         </div>
         <div class="wrap clear">
             <!--左侧面包屑-->
@@ -37,7 +37,7 @@
                         </span>
                     </p>
                     <div class="user">
-                        <p>买家名称:<span>{{ userInfo.name ? userInfo.name : '' }}</span></p>
+                        <p>买家名称:<span>{{ userInfo.name ? userInfo.name : '暂无' }}</span></p>
                         <p>收货人:<span>{{ userInfo.receiver ? userInfo.receiver : '' }}</span></p>
                         <p>联系方式:<span>{{ userInfo.mobile ? userInfo.mobile : '' }}</span></p>
                     </div>
@@ -86,7 +86,7 @@
                       <div class="info-title">订单信息</div>
                       <div class="content">
                           <div class="order-item">
-                              <p>订单编号:{{order.shopOrderNo}}</p>
+                              <p><el-tag type="success" effect="dark" size="mini" v-if="order.orderType === 0">采购员</el-tag>订单编号:{{order.shopOrderNo}}</p>
                               <p class="state">{{order.status | statusFilters}}</p>
                            </div>
                           <div class="order-item pay">
@@ -126,6 +126,27 @@
             </div>
         </div>
     </div>
+    <!-- 商品价格异常弹窗  -->
+    <el-dialog
+            title="提示"
+            :visible.sync="abnormalDialogVisible"
+            width="700px"
+            :close-on-click-modal="false"
+            :show-close="false"
+    >
+        <el-tag type="danger" style="margin: 5px 0;">以下商品修改后的单价会导致不能覆盖成本和平台服务费,请重新修改。</el-tag>
+        <el-table ref="table" :data="abnormalProductList" border >
+            <el-table-column prop="image" label="商品图片" align="center">
+                <template slot-scope="{ row }">
+                    <img :src="row.image" :alt="row.name" style="width: 40px;height: 40px;">
+                </template>
+            </el-table-column>
+            <el-table-column prop="name" label="商品名称" align="center"></el-table-column>
+        </el-table>
+        <div slot="footer">
+            <el-button type="primary" @click="abnormalDialogVisible = false">确定</el-button>
+        </div>
+    </el-dialog>
 </div>
 
 <!-- 引入底部 -->

+ 2 - 2
src/main/resources/templates/supplier-center/order/order-return.html

@@ -37,7 +37,7 @@
                         </span>
                     </p>
                     <div class="user">
-                        <p>买家名称:<span>{{ userInfo.name ? userInfo.name : '' }}</span></p>
+                        <p>买家名称:<span>{{ userInfo.name ? userInfo.name : '暂无' }}</span></p>
                         <p>收货人:<span>{{ userInfo.receiver ? userInfo.receiver : '' }}</span></p>
                         <p>联系方式:<span>{{ userInfo.mobile ? userInfo.mobile : '' }}</span></p>
                     </div>
@@ -48,7 +48,7 @@
                     <div class="order-info">
                         <div class="content">
                             <div class="order-item">
-                                <p>订单编号:{{order.shopOrderNo}}</p>
+                                <p><el-tag type="success" effect="dark" size="mini" v-if="order.orderType === 0">采购员</el-tag>订单编号:{{order.shopOrderNo}}</p>
                                 <p class="state">{{order.status | statusFilters}}</p>
                             </div>
                             <div class="order-item pay">

+ 145 - 0
src/main/resources/templates/supplier-center/order/order-share-details.html

@@ -0,0 +1,145 @@
+<!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>确认订单</title>
+    <template th:replace="components/head-link"></template>
+    <link th:href="@{/css/base/center.css(v=${version})}" rel="stylesheet" type="text/css">
+    <!--element ui 样式表-->
+    <link rel="stylesheet" href="https://unpkg.zhimg.com/element-ui@2.15.13/lib/theme-chalk/index.css"/>
+    <link rel="stylesheet" href="/lib/element-ui/element-ui-min.css"/>
+    <link th:href="@{/css/supplier-center/order/order-share-detail.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
+</head>
+<body>
+<div id="orderPage" v-cloak>
+    <input type="hidden" th:value="${coreServer}" id="coreServer">
+    <input type="hidden" th:value="${siteEnv}" id="siteEnv">
+    <div class="navLayout" v-cloak>
+        <div v-if="isPC" class="crumbs">
+            <span>订单详情</span>
+        </div>
+        <div class="wrap clear">
+            <!--左侧导航-->
+            <div class="content-main">
+                <!--loading-->
+                <div class="order-container clear" v-if="!isRequset" :class="orderInfo.status !== 0 ? 'none' : ''">
+                    <!--数据为空-->
+                    <div class="section">
+                        <div class="section-info shadow">
+                            <div class="order-title">
+                                <div class="title-name">
+                                    <p>
+                                        <el-tag type="success" effect="dark" size="mini" v-if="orderInfo.orderSubmitType == 3 || orderInfo.orderSubmitType == 4">采购员</el-tag>
+                                        订单编号:<span>{{orderInfo.shopOrderNo}}</span>
+                                    </p>
+                                    <p class="state">{{orderInfo.status | statusFilters}}</p>
+                                </div>
+                                <div class="title-type" v-if="orderInfo.secondHandOrderFlag == 1"></div>
+                                <div class="title-time">
+                                    <p>下单时间:<span>{{orderInfo.orderTime}}</span></p>
+                                </div>
+                            </div>
+                            <div class="order-content">
+                                <div class="order-item">
+                                    <p>收货人:<span class="none" v-if="userInfo">{{userInfo.receiver}}</span> </p>
+                                    <p>电话:<span class="none" v-if="userInfo">{{userInfo.mobile}}</span> </p>
+                                    <p class="address">地址:<span class="none" v-if="userInfo">{{userInfo.province}}{{userInfo.city}}{{userInfo.town}}{{userInfo.address}}</span> </p>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="section-list shadow">
+                            <div class="section-shopinfo">
+                                <div class="title">
+                                    <img :src="orderInfo.shopLogo" alt="" class="logo">
+                                    <p class="name">{{orderInfo.shopName}}</p>
+                                </div>
+                                <div class="product">
+                                    <div class="section-prosinfo" v-for="(pros, pIndex) in orderInfo.orderProductList" :key="pIndex">
+                                        <div class="product-t clear">
+                                            <div class="image">
+                                                <img :src="pros.image" alt="">
+                                                <span v-if="pros.giftType==2||pros.giftType==1" class="tip">赠品</span>
+                                            </div>
+                                            <div class="text">
+                                                <p class="tit">{{pros.name}}</p>
+                                                <div class="info">
+                                                    <p class="col" v-if="pros.productCategory != 2">规格:<span class="none">{{pros.productUnit ? pros.productUnit : ''}}</span> </p>
+                                                    <p class="col">数量:<span class="none">{{pros.num}}</span> </p>
+                                                    <div class="col">
+                                                        <template v-if="pros.svipPriceFlag === 1">
+                                                            <span>单价: </span>
+                                                            <span class="none"><del>¥{{pros.price | NumFormat}}</del></span>
+                                                            <!--超级会员价格标签-->
+                                                            <div class="svip-tag" >
+                                                                <div class="svip-icon">SVIP</div>
+                                                                <div class="svip-price">
+                                                                    <span v-html="pros.svipPriceTag"></span>
+                                                                </div>
+                                                            </div>
+                                                        </template>
+                                                        <p v-else>单价: <span class="none">¥{{pros.price | NumFormat}}</span></p>
+                                                    </div>
+                                                    <p class="col">税率:<span class="none">{{pros.taxRate}}%</span></p>
+                                                </div>
+                                                <div class="price">
+                                                    <p>合计: <span class="red">¥{{pros.totalFee | NumFormat}}</span></p>
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="shopinfo-bott clear">
+                                    <p>商品总额:<span class="red" >¥{{orderInfo.totalAmount | NumFormat }}</span> </p>
+                                    <p>订单总额:<span class="red" >¥{{orderInfo.totalAmount | NumFormat }}</span> </p>
+                                    <p>运费:<span class="red">{{orderInfo.postageInfo }}</span> </p>
+                                </div>
+                                <div class="shopinfo-bott clear">
+                                    <p>应付金额:<span class="red">¥{{orderInfo.realPay | NumFormat}}</span> </p>
+                                    <p>已付金额:<span class="red">
+                                        ¥{{orderInfo.receiptAmount | NumFormat}}
+                                        <span v-if="orderInfo.accountAmount>0">(余额抵扣:¥{{orderInfo.accountAmount | NumFormat}})</span>
+                                    </span>
+                                    </p>
+                                    <p>待付金额:<span class="red">¥{{orderInfo.obligation | NumFormat}}</span> </p>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="section-showInfo">
+                            <div class="title-name">发票信息</div>
+                            <div class="content">
+                                <div class="order-item">
+                                    <p>{{  orderInvoice | setInvoiceText }}</p>
+                                </div>
+                                <template v-if="orderInvoice">
+                                    <div class="order-item">
+                                        <p v-if="orderInvoice.type > 0">发票抬头:<span class="none">{{ orderInvoice.invoiceTitle ? orderInvoice.invoiceTitle : '无' }}</span></p>
+                                        <p v-if="orderInvoice.type === 2 || orderInvoice.headingType === 1">单位税号:<span class="none">{{ orderInvoice.corporationTaxNum ? orderInvoice.corporationTaxNum : '无' }}</span> </p>
+                                        <p v-if="orderInvoice.type === 2 || orderInvoice.headingType === 1">注册地址:<span class="none" >{{ orderInvoice.registeredAddress ? orderInvoice.registeredAddress : '无' }}</span> </p>
+                                    </div>
+                                    <div class="order-item" v-if="orderInvoice.type === 2 || orderInvoice.headingType === 1">
+                                        <p>注册电话:<span class="none">{{ orderInvoice.registeredPhone ? orderInvoice.registeredPhone : '无' }}</span></p>
+                                        <p>开户银行:<span class="none">{{ orderInvoice.openBank ? orderInvoice.openBank : '无' }}</span></p>
+                                        <p>银行账号:<span class="none">{{ orderInvoice.bankAccountNo ? orderInvoice.bankAccountNo : '无' }}</span></p>
+                                    </div>
+                                </template>
+                            </div>
+                        </div>
+                        <div class="section-botton shadow" v-if="orderInfo.status === 0">
+                            <el-button type="primary" @click="handeleConfirm">确认订单</el-button>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<!-- 引入底部 -->
+<template th:replace="components/foot-link"></template>
+<script type="text/javascript" src="/lib/element-ui/element-ui.min.js"></script>
+<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/common/serviceapi/supplier.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/supplier-center/order/order-share-detail.js(v=${version})}"></script>
+</body>
+</html>

+ 39 - 0
src/main/resources/templates/supplier-center/order/order-share-login.html

@@ -0,0 +1,39 @@
+<!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>输入分享码</title>
+  <template th:replace="components/head-link"></template>
+  <link th:href="@{/css/supplier-center/order/order-share-login.css(v=${version})}" rel="stylesheet" type="text/css">
+  <template th:replace="components/analysis"></template>
+</head>
+<body>
+<!-- 引用头部 -->
+<input type="hidden" th:value="${coreServer}" id="coreServer">
+<input type="hidden" th:value="${siteEnv}" id="siteEnv">
+<!-- 机构信息 -->
+<div id="shareContent" v-cloak>
+  <div class="share-content">
+    <div class="share-logo">
+      <img v-if="isPC" src="/img/supplier/icon-lg-pcLogin.png" alt="丽格集采联盟"/>
+      <img v-else src="/img/supplier/icon-lg-h5Login.png" alt="丽格集采联盟"/>
+    </div>
+    <div class="share-form">
+      <el-form ref="dataForm" :rules="rules" :model="form" label-position="top" label-width="0px">
+        <el-form-item label="分享码:" prop="shareCode" :rules="rules.shareCode">
+          <el-input v-model="form.shareCode"  maxlength="4"></el-input>
+        </el-form-item>
+        <el-form-item>
+            <el-button type="primary" :disabled="disabled" style="width: 100%;"  @click="handleConfirm('dataForm')">确定</el-button>
+        </el-form-item>
+      </el-form>
+    </div>
+  </div>
+</div>
+<!-- 引入底部 -->
+<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/common/serviceapi/supplier.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/supplier-center/order/order-share-login.js(v=${version})}"></script>
+</body>
+</html>