Browse Source

商品模块修复BUG

zhengjinyi 4 years ago
parent
commit
7beabc0b36

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

@@ -24,6 +24,10 @@ public class SupplierPageController extends BaseController {
 	private static final String LOGISTICS_DETAIL = "supplier-center/order/logistics-detail";
     /** 添加物流 */
 	private static final String LOGISTICS_ADD = "supplier-center/order/logistics-add";
+    /** 商品资质详情 */
+	private static final String QUALIFICATIONS_DETAIL = "supplier-center/order/qualifications-detail";
+    /** 添加编辑商品资质 */
+	private static final String QUALIFICATIONS_ADD = "supplier-center/order/qualifications-add";
     /** 售货清单 */
 	private static final String SALES_LIST = "supplier-center/order/sales-list";
     /** 发货 */
@@ -94,6 +98,18 @@ public class SupplierPageController extends BaseController {
         return LOGISTICS_DETAIL;
     }
 
+    /** 商品资质详情 */
+    @GetMapping("/supplier/order/qualifications/detail.html")
+    public String qualificationsDetail() {
+        return QUALIFICATIONS_DETAIL;
+    }
+
+    /** 添加商品资质 */
+    @GetMapping("/supplier/order/qualifications/add.html")
+    public String qualificationsAdd() {
+        return QUALIFICATIONS_ADD;
+    }
+
     /** 添加物流 */
     @GetMapping("/supplier/order/logistics/add.html")
     public String logisticsAdd() {

+ 114 - 0
src/main/resources/static/css/supplier-center/order/qualifications-details.css

@@ -0,0 +1,114 @@
+@media screen and (min-width:768px) {
+    .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}
+    .comback {width: 90px;height: 36px;background-color: #ffe6dc;border-radius: 2px;border: solid 1px #e15616;float: right;line-height: 36px;margin-top: 10px;cursor: pointer;color: #e15616;}
+    .userinfo .user p {display: inline-block;color: #627386;margin: 15px 45px 15px 0px;}
+    .userinfo .user p span {color: #22272e;}
+    .address {margin-bottom: 15px;color: #627386;}
+    .address span {color: #22272e;}
+    .product-info {margin-top: 20px;}
+    .price {overflow: hidden;}
+    .protitle {color: #22272e;font-size: 16px;padding: 15px;}
+    .product {background: #fff;padding: 10px 20px;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);}
+    .product-title {border-bottom: solid 1px #e2e7ef;height: 54px;line-height: 54px}
+    .product-title li {display: inline-block;list-style: none;color: #627386;width: 11%;text-align: center;}
+    .product-title li:nth-child(1) {width: 50%;text-align: left}
+    .pro-information li {list-style: none;}
+    .pro-information li {width: 100%;padding: 10px 0;}
+    .pro-information li div {display: inline-block;width: 11%;text-align: center;color: #627386;}
+    .pro-information li div.product-img {width: 50%;text-align: left;}
+    .product-img img {width: 70px;height: 70px;border: solid 1px #e2e7ef;}
+    .product-img h3 {display: inline-block;width: 300px;margin-left: 10px;font-size: 16px;color: #22272e;vertical-align: middle;word-break: break-all;overflow: hidden;text-overflow: ellipsis;display: -webkit-inline-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical}
+    .add-logistics{height: auto;background-color: #ffffff;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);margin-top: 10px;padding: 20px;color: #627386;}
+    .company-number{display: flex;width: 100%;}
+    .logist-right>div{margin-top: 5px;}
+    .company-number>div{width: 49%;display: inline-block;margin: 2px 0;flex: 2;}
+    .company{width: 210px;height: 36px;background-color: #ffffff;border-radius: 2px;border: solid 1px #b8bfca;color: #627386;padding-left: 10px;cursor: pointer;}
+    input::placeholder{color: #9aa5b5;font-size: 12px;}
+    textarea::placeholder {color: #9aa5b5;}
+    .red{color: #f94b4b;}
+    .companyBtn{position: absolute;width: 36px;height: 36px;background-color: #ffffff;border-radius: 2px;border: solid 1px #b8bfca;margin-left: 8px;cursor: pointer;}
+    .mIcon.add{background: url(/img/account/add.png) no-repeat;height: 80px;display: block;background-size: 80px;}
+    .add-text {font-size: 12px;color: #333330;opacity: 0.5;position: absolute;top: 60%;right: 13px;}
+    .upload-file{position: relative;float: left;margin: 10px 10px 10px 0px;cursor: pointer;width: 80px;height: 80px;border-radius: 2px;}
+    .input-file{width: 80px;height: 80px;opacity: 0;cursor: pointer;position: absolute;top: 0}
+    #uploadGoodsImages{overflow: hidden;float: left;width: 90%}
+    .release-from{overflow: hidden;}
+    .red-color{float: left;height: 80px;line-height: 80px;width: 85px;}
+    .upload-file img{width: 100%;height: 100%;}
+    .icon.del:before {width: 20px;height: 20px;background-position: -116px -138px;position: absolute;top: -3px;right: -3px;}
+    .form-upload-tips .icon-wen:before {width: 20px;height: 20px;background-position: -84px -144px;cursor: pointer; margin-top: 10px;}
+    .wen-tips {width: 300px;height: 47px;background-color: #1890f9;box-shadow: 0px 3px 6px 0px rgba(24, 144, 249, 0.17);color: #fff;position: absolute;left: inherit;font-size: 12px;text-align: center;line-height: 47px;top: 33px;display: none;}
+    .form-upload-tips{float: left;position: relative;}
+    .form-upload-tips .wen-tips:before {content: '';width: 0px;height: 0px;border-width: 8px;border-style: solid;border-color: transparent transparent #1890f9 transparent;position: absolute;top: -15px;left:5px;}
+    .form-upload-tips:hover .wen-tips {display: block;}
+    .remarks textarea{width: 496px;height: 114px;background-color: #ffffff;border-radius: 2px;border: solid 1px #b8bfca;resize: none;padding: 10px;color: #9aa5b5;}
+    .remarks{margin-top: 25px;position: relative;}
+    .remarks .rema{height: 114px;line-height: 114px;display: inline-block;float: left;width: 85px;text-align: center}
+    .size-num {position: absolute;right: 350px;top: 109px;color: #9aa5b5}
+    .defineBtn button{width: 90px;height: 36px;line-height: 36px;text-align: center;color: #fff;background-color: #e15616;border-radius: 2px;border: solid 1px #e15616;cursor: pointer;margin-right: 15px}
+    .defineBtn{overflow: hidden;padding: 20px;}
+    .defineBtn>div{float: right;}
+    .icon.add-company:before{width: 20px;height: 25px;background-position: -307px -511px}
+    .icon.sub-company:before{width: 20px;height: 25px;background-position: -337px -511px}
+
+}
+
+/*移动*/
+@media screen and (max-width:768px) {
+    .crumbs {font-size:3.4vw;color: #22272e}
+    .userinfo {padding: 1.3vw 5.3vw;background: #fff;box-shadow: 0 .8vw 1.6vw 0 rgba(0, 0, 0, 0.07);}
+    .info {height: 13vw;line-height: 13vw;font-size: 3.4vw;color: #22272e;overflow: hidden}
+    .comback {width: 22.4vw;height: 7.2vw;background-color: #ffe6dc;border-radius: 4.8vw;border: solid .27vw #e15616;float: right;line-height: 7.2vw;margin-top: 2.7vw;cursor: pointer;color: #e15616;}
+    .userinfo .user p {display: inline-block;color: #627386;margin: 0 6.7vw 2.7vw 0;}
+    .userinfo .user p:nth-child(1){width: 100%}
+    .userinfo .user p span {color: #22272e;}
+    .address {margin-bottom: 4vw;color: #627386;}
+    .address span {color: #22272e;}
+    .product-info {box-shadow: 0px .8vw 1.6vw 0px rgba(0, 0, 0, 0.07);background: #fff;margin-top: 2.7vw}
+    .price {overflow: hidden;}
+    .protitle {color: #22272e;font-size: 3.4vw;padding: 2.7vw 5.3vw;}
+    .product {background: #fff;padding: 2.7vw 5.3vw;box-shadow: 0px .8vw 1.3vw 0px rgba(0, 0, 0, 0.07);height: 50vw}
+    .product-title {height: 5.3vw;line-height: 5.3vw;position: relative;width: 100%}
+    .product-title li {display: inline-block;list-style: none;color: #9aa5b5;position: relative;top: 26vw;width: 21vw}
+    .product-title li:nth-child(1) {width: 100%;text-align: left;top: 0;}
+    .pro-information li {list-style: none;}
+    .pro-information li {width: 100%;padding: 2.7vw 0;}
+    .pro-information li div {display: inline-block;color: #22272e;top: 11.6vw;width: 21vw;position: relative}
+    .pro-information li div.product-img {width: 100%;text-align: left;top: 0}
+    .product-img img {width: 18.7vw;height: 18.7vw;border: solid .27vw #e2e7ef;}
+    .product-img h3 {display: inline-block;width: 40vw;margin-left: 2.7vw;font-size: 3.4VW;color: #22272e;vertical-align: middle;word-break: break-all;overflow: hidden;text-overflow: ellipsis;display: -webkit-inline-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical}
+    .add-logistics{height: auto;background-color: #ffffff;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);margin-top: 2.7vw;padding: 20px;color: #627386;}
+    .company-number{width: 100%;}
+    .logist-right>div{margin-top: 1.3vw;}
+    .company-number>div{margin: 4vw 0;}
+    .logistics-order-number.company{width: 72vw}
+    .company{width: 75vw;height: 11.8vw;background-color: #ffffff;border-radius: .53vw;border: solid .27vw #b8bfca;color: #9aa5b5;padding-left: 2.7vw;margin-top: 2.7vw}
+    input::placeholder,textarea::placeholder {color: #9aa5b5;font-size:3.2vw;}
+    textarea::placeholder {color: #9aa5b5;}
+    .red{color: #f94b4b;}
+    .companyBtn{width: 11.8vw;height: 11.8vw;background-color: #ffffff;border-radius: .53vw;border: solid .27vw #b8bfca;
+    margin-left: .53vw;cursor: pointer;color: #b8bfca;position: relative;top:1.3vw}
+    .mIcon.add{background: url(/img/account/add.png) no-repeat;height: 23vw;display: block;    background-size: 23vw;}
+    .upload-file{position: relative;float: left;margin: 0 2.7vw 2.7vw 0px;cursor: pointer;width: 23vw;height: 23vw;border-radius: .53vw;}
+    .input-file{width: 23vw;height:23vw;opacity: 0;cursor: pointer;position: absolute;top: 0;}
+    #uploadGoodsImages{overflow: hidden;float: left;width: 100%;margin-top: 2.7vw}
+    .release-from{overflow: hidden;}
+    .upload-file img{width: 100%;height: 100%;}
+    .mIcon.del:before {width: 5.3vw;height: 5.3vw;background-position: -90vw -7.5vw;position: absolute;top: -.8vw;right: -.8vw}
+    .form-upload-tips .icon-wen:before {width: 5.3vw;height: 5.3vw;background-position: -76.4vw 0vw;cursor: pointer;}
+    .wen-tips {width: 67.2vw;height:9vw;background-color: #1890f9;box-shadow: 0px .8vw 1.3vw 0px rgba(24, 144, 249, 0.17);color: #fff;position: absolute;left: inherit;font-size: 2.6vw;text-align: left;line-height: 9vw;top:8.8vw;display: none;}
+    .form-upload-tips{float: left;position: relative;}
+    .form-upload-tips .wen-tips:before {content: '';width: 0px;height: 0px;border-width: 8px;border-style: solid;border-color: transparent transparent #1890f9 transparent;position: absolute;top: -3.5vw;left:1.3vw;}
+    .form-upload-tips:hover .wen-tips {display: block;}
+    .remarks textarea{width: 83.4vw;height: 42.4vw;background-color: #ffffff;border-radius: .53vw;border: solid .27vw #b8bfca;resize: none;padding: 2.7vw;color: #9aa5b5;}
+    .remarks{position: relative}
+    .remarks .rema{line-height:10.7vw ;}
+    .size-num {position: absolute;right: 2.7vw;top: 52vw;color: #9aa5b5}
+    .defineBtn button{width: 100%;height: 11.2vw;line-height: 11.2vw;text-align: center;color: #fff;background-color: #e15616;border-radius: .53vw;border: solid .27vw #e15616;cursor: pointer;margin-bottom: 2.7vw}
+    .defineBtn button:nth-child(2){background:#ffe6dc;color: #e15616 }
+    .defineBtn{overflow: hidden;margin-top: 4vw}
+    .mIcon.add-company:before{width: 5.3vw;height: 6.7vw;background-position: -33.9vw -68.8vw}
+    .mIcon.sub-company:before{width: 5.3vw;height:6.7vw;background-position: -41.3vw -68vw}
+}

+ 114 - 0
src/main/resources/static/css/supplier-center/order/qualifications.css

@@ -0,0 +1,114 @@
+@media screen and (min-width:768px) {
+    .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}
+    .comback {width: 90px;height: 36px;background-color: #ffe6dc;border-radius: 2px;border: solid 1px #e15616;float: right;line-height: 36px;margin-top: 10px;cursor: pointer;color: #e15616;}
+    .userinfo .user p {display: inline-block;color: #627386;margin: 15px 45px 15px 0px;}
+    .userinfo .user p span {color: #22272e;}
+    .address {margin-bottom: 15px;color: #627386;}
+    .address span {color: #22272e;}
+    .product-info {margin-top: 20px;}
+    .price {overflow: hidden;}
+    .protitle {color: #22272e;font-size: 16px;padding: 15px;}
+    .product {background: #fff;padding: 10px 20px;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);}
+    .product-title {border-bottom: solid 1px #e2e7ef;height: 54px;line-height: 54px}
+    .product-title li {display: inline-block;list-style: none;color: #627386;width: 11%;text-align: center;}
+    .product-title li:nth-child(1) {width: 50%;text-align: left}
+    .pro-information li {list-style: none;}
+    .pro-information li {width: 100%;padding: 10px 0;}
+    .pro-information li div {display: inline-block;width: 11%;text-align: center;color: #627386;}
+    .pro-information li div.product-img {width: 50%;text-align: left;}
+    .product-img img {width: 70px;height: 70px;border: solid 1px #e2e7ef;}
+    .product-img h3 {display: inline-block;width: 300px;margin-left: 10px;font-size: 16px;color: #22272e;vertical-align: middle;word-break: break-all;overflow: hidden;text-overflow: ellipsis;display: -webkit-inline-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical}
+    .add-logistics{height: auto;background-color: #ffffff;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);margin-top: 10px;padding: 20px;color: #627386;}
+    .company-number{display: flex;width: 100%;}
+    .logist-right>div{margin-top: 5px;}
+    .company-number>div{width: 49%;display: inline-block;margin: 2px 0;flex: 2;}
+    .company{width: 210px;height: 36px;background-color: #ffffff;border-radius: 2px;border: solid 1px #b8bfca;color: #627386;padding-left: 10px;cursor: pointer;}
+    input::placeholder{color: #9aa5b5;font-size: 12px;}
+    textarea::placeholder {color: #9aa5b5;}
+    .red{color: #f94b4b;}
+    .companyBtn{position: absolute;width: 36px;height: 36px;background-color: #ffffff;border-radius: 2px;border: solid 1px #b8bfca;margin-left: 8px;cursor: pointer;}
+    .mIcon.add{background: url(/img/account/add.png) no-repeat;height: 80px;display: block;background-size: 80px;}
+    .add-text {font-size: 12px;color: #333330;opacity: 0.5;position: absolute;top: 60%;right: 13px;}
+    .upload-file{position: relative;float: left;margin: 10px 10px 10px 0px;cursor: pointer;width: 80px;height: 80px;border-radius: 2px;}
+    .input-file{width: 80px;height: 80px;opacity: 0;cursor: pointer;position: absolute;top: 0}
+    #uploadGoodsImages{overflow: hidden;float: left;width: 90%}
+    .release-from{overflow: hidden;}
+    .red-color{float: left;height: 80px;line-height: 80px;width: 85px;}
+    .upload-file img{width: 100%;height: 100%;}
+    .icon.del:before {width: 20px;height: 20px;background-position: -116px -138px;position: absolute;top: -3px;right: -3px;}
+    .form-upload-tips .icon-wen:before {width: 20px;height: 20px;background-position: -84px -144px;cursor: pointer; margin-top: 10px;}
+    .wen-tips {width: 300px;height: 47px;background-color: #1890f9;box-shadow: 0px 3px 6px 0px rgba(24, 144, 249, 0.17);color: #fff;position: absolute;left: inherit;font-size: 12px;text-align: center;line-height: 47px;top: 33px;display: none;}
+    .form-upload-tips{float: left;position: relative;}
+    .form-upload-tips .wen-tips:before {content: '';width: 0px;height: 0px;border-width: 8px;border-style: solid;border-color: transparent transparent #1890f9 transparent;position: absolute;top: -15px;left:5px;}
+    .form-upload-tips:hover .wen-tips {display: block;}
+    .remarks textarea{width: 496px;height: 114px;background-color: #ffffff;border-radius: 2px;border: solid 1px #b8bfca;resize: none;padding: 10px;color: #9aa5b5;}
+    .remarks{margin-top: 25px;position: relative;}
+    .remarks .rema{height: 114px;line-height: 114px;display: inline-block;float: left;width: 85px;text-align: center}
+    .size-num {position: absolute;right: 350px;top: 109px;color: #9aa5b5}
+    .defineBtn button{width: 90px;height: 36px;line-height: 36px;text-align: center;color: #fff;background-color: #e15616;border-radius: 2px;border: solid 1px #e15616;cursor: pointer;margin-right: 15px}
+    .defineBtn{overflow: hidden;padding: 20px;}
+    .defineBtn>div{float: right;}
+    .icon.add-company:before{width: 20px;height: 25px;background-position: -307px -511px}
+    .icon.sub-company:before{width: 20px;height: 25px;background-position: -337px -511px}
+
+}
+
+/*移动*/
+@media screen and (max-width:768px) {
+    .crumbs {font-size:3.4vw;color: #22272e}
+    .userinfo {padding: 1.3vw 5.3vw;background: #fff;box-shadow: 0 .8vw 1.6vw 0 rgba(0, 0, 0, 0.07);}
+    .info {height: 13vw;line-height: 13vw;font-size: 3.4vw;color: #22272e;overflow: hidden}
+    .comback {width: 22.4vw;height: 7.2vw;background-color: #ffe6dc;border-radius: 4.8vw;border: solid .27vw #e15616;float: right;line-height: 7.2vw;margin-top: 2.7vw;cursor: pointer;color: #e15616;}
+    .userinfo .user p {display: inline-block;color: #627386;margin: 0 6.7vw 2.7vw 0;}
+    .userinfo .user p:nth-child(1){width: 100%}
+    .userinfo .user p span {color: #22272e;}
+    .address {margin-bottom: 4vw;color: #627386;}
+    .address span {color: #22272e;}
+    .product-info {box-shadow: 0px .8vw 1.6vw 0px rgba(0, 0, 0, 0.07);background: #fff;margin-top: 2.7vw}
+    .price {overflow: hidden;}
+    .protitle {color: #22272e;font-size: 3.4vw;padding: 2.7vw 5.3vw;}
+    .product {background: #fff;padding: 2.7vw 5.3vw;box-shadow: 0px .8vw 1.3vw 0px rgba(0, 0, 0, 0.07);height: 50vw}
+    .product-title {height: 5.3vw;line-height: 5.3vw;position: relative;width: 100%}
+    .product-title li {display: inline-block;list-style: none;color: #9aa5b5;position: relative;top: 26vw;width: 21vw}
+    .product-title li:nth-child(1) {width: 100%;text-align: left;top: 0;}
+    .pro-information li {list-style: none;}
+    .pro-information li {width: 100%;padding: 2.7vw 0;}
+    .pro-information li div {display: inline-block;color: #22272e;top: 11.6vw;width: 21vw;position: relative}
+    .pro-information li div.product-img {width: 100%;text-align: left;top: 0}
+    .product-img img {width: 18.7vw;height: 18.7vw;border: solid .27vw #e2e7ef;}
+    .product-img h3 {display: inline-block;width: 40vw;margin-left: 2.7vw;font-size: 3.4VW;color: #22272e;vertical-align: middle;word-break: break-all;overflow: hidden;text-overflow: ellipsis;display: -webkit-inline-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical}
+    .add-logistics{height: auto;background-color: #ffffff;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.07);margin-top: 2.7vw;padding: 20px;color: #627386;}
+    .company-number{width: 100%;}
+    .logist-right>div{margin-top: 1.3vw;}
+    .company-number>div{margin: 4vw 0;}
+    .logistics-order-number.company{width: 72vw}
+    .company{width: 75vw;height: 11.8vw;background-color: #ffffff;border-radius: .53vw;border: solid .27vw #b8bfca;color: #9aa5b5;padding-left: 2.7vw;margin-top: 2.7vw}
+    input::placeholder,textarea::placeholder {color: #9aa5b5;font-size:3.2vw;}
+    textarea::placeholder {color: #9aa5b5;}
+    .red{color: #f94b4b;}
+    .companyBtn{width: 11.8vw;height: 11.8vw;background-color: #ffffff;border-radius: .53vw;border: solid .27vw #b8bfca;
+    margin-left: .53vw;cursor: pointer;color: #b8bfca;position: relative;top:1.3vw}
+    .mIcon.add{background: url(/img/account/add.png) no-repeat;height: 23vw;display: block;    background-size: 23vw;}
+    .upload-file{position: relative;float: left;margin: 0 2.7vw 2.7vw 0px;cursor: pointer;width: 23vw;height: 23vw;border-radius: .53vw;}
+    .input-file{width: 23vw;height:23vw;opacity: 0;cursor: pointer;position: absolute;top: 0;}
+    #uploadGoodsImages{overflow: hidden;float: left;width: 100%;margin-top: 2.7vw}
+    .release-from{overflow: hidden;}
+    .upload-file img{width: 100%;height: 100%;}
+    .mIcon.del:before {width: 5.3vw;height: 5.3vw;background-position: -90vw -7.5vw;position: absolute;top: -.8vw;right: -.8vw}
+    .form-upload-tips .icon-wen:before {width: 5.3vw;height: 5.3vw;background-position: -76.4vw 0vw;cursor: pointer;}
+    .wen-tips {width: 67.2vw;height:9vw;background-color: #1890f9;box-shadow: 0px .8vw 1.3vw 0px rgba(24, 144, 249, 0.17);color: #fff;position: absolute;left: inherit;font-size: 2.6vw;text-align: left;line-height: 9vw;top:8.8vw;display: none;}
+    .form-upload-tips{float: left;position: relative;}
+    .form-upload-tips .wen-tips:before {content: '';width: 0px;height: 0px;border-width: 8px;border-style: solid;border-color: transparent transparent #1890f9 transparent;position: absolute;top: -3.5vw;left:1.3vw;}
+    .form-upload-tips:hover .wen-tips {display: block;}
+    .remarks textarea{width: 83.4vw;height: 42.4vw;background-color: #ffffff;border-radius: .53vw;border: solid .27vw #b8bfca;resize: none;padding: 2.7vw;color: #9aa5b5;}
+    .remarks{position: relative}
+    .remarks .rema{line-height:10.7vw ;}
+    .size-num {position: absolute;right: 2.7vw;top: 52vw;color: #9aa5b5}
+    .defineBtn button{width: 100%;height: 11.2vw;line-height: 11.2vw;text-align: center;color: #fff;background-color: #e15616;border-radius: .53vw;border: solid .27vw #e15616;cursor: pointer;margin-bottom: 2.7vw}
+    .defineBtn button:nth-child(2){background:#ffe6dc;color: #e15616 }
+    .defineBtn{overflow: hidden;margin-top: 4vw}
+    .mIcon.add-company:before{width: 5.3vw;height: 6.7vw;background-position: -33.9vw -68.8vw}
+    .mIcon.sub-company:before{width: 5.3vw;height:6.7vw;background-position: -41.3vw -68vw}
+}

+ 152 - 0
src/main/resources/static/js/supplier-center/order/qualifications-detail.js

@@ -0,0 +1,152 @@
+;
+var logistics = new Vue({
+    el:'#logistics',
+    data:{
+         userInfo:{},
+         orderList:[],
+         GoodsImagesList:[],
+         formData:new FormData(),
+         txtVal: 0,
+         desc:'',
+         kdlist:[],
+         logisticList:[
+             {
+                value:'',
+                name:'',
+                numList:[
+                    {number:''}
+                ]
+             }
+         ],
+         params:{
+            logistics:[],//物流
+            record:[],
+            info:{
+                image:'',
+                note:'',//备注
+                shopOrderId:'',//商品id
+            },
+         },
+         select:'',
+         electShow:false,
+    },
+    methods:{
+        bigImage:function(){
+            var viewer = new Viewer(document.getElementById('uploadGoodsImages'));
+        },
+         uploadGoodsImagesFn: function(event){//上传商品图片
+            var _this = this;
+            var inputDOM = _this.$refs.goodsImages;
+            var file = inputDOM.files;
+            _this.formData.append('file', file[0]);
+            SupplierApi.uploadimg(_this.formData,function(response){
+               _this.GoodsImagesList.push(response.data);
+               _this.params.info.image =_this.GoodsImagesList.join('##').substring();
+                event.target.value = '';
+            });
+        },
+         removeGoodsImagesFn: function(index){//删除商品图片
+            var _this = this;
+            _this.GoodsImagesList.splice(index,1);
+             _this.params.info.image =_this.GoodsImagesList.join('##').substring();
+         },
+         selshow:function(event,index){
+            this.select = index;
+            this.electShow = !this.electShow
+         },
+         addBtn:function () { //添加物流
+             var _this = this;
+             var obj = {
+                        value:'',
+                        name:'',
+                        numList:[
+                            {number:''}
+                        ]
+                  };
+              _this.logisticList.push(obj);
+         },
+         addNum:function(item,index){
+            var _this = this;
+            var obj = {number:''};
+            item.numList.push(obj);
+         },
+         subBtn:function (list) {
+            var _this = this;
+             _this.logisticList.splice(_this.kdlist.indexOf(list), 1);
+         },
+         reduceBtn:function(item){
+            var _this = this;
+             item.numList.splice(item.numList.indexOf(item.numList), 1);
+         },
+         parameter:function(){//参数信息
+           var _this = this;
+           var record=[];
+            $('.pro-information li').each(function(){//发货数
+                  var productobj={};
+                  productobj.orderProductId = $(this).attr('orderproductid');
+                  productobj.num = $(this).find('.del-num').text();
+                    record.push(productobj)
+            });
+             _this.params.record=record
+            _this.params.info.shopOrderId = $('.pro-information li').attr('shopOrderID');
+            _this.logisticList.forEach(function (pros) {
+                    var obj = {};
+                    var Code = pros.value;
+                    var yName = pros.name;
+                    var numList = pros.numList;
+                    numList.forEach(function (item) {
+                        var logisNum = item.number;
+                         obj={
+                            logisticsCompanyCode:Code,
+                            logisticsCompanyName:yName,
+                            number:logisNum
+                        };
+                         if(obj.logisticsCompanyCode==""&&obj.logisticsCompanyName==""){
+                            CAIMEI.Alert('请选择快递公司','确定')
+                        }else if(obj.number==""){
+                            CAIMEI.Alert('请输入快递单号','确定')
+                        }else {
+                         _this.params.logistics.push(obj);
+                        }
+                     })
+              })
+         },
+         ChangeLogistics:function(event,item,index){
+             var donClass = '#logistics'+index;
+             var domLogistics =  document.querySelector(donClass);
+             item.name = domLogistics.options[domLogistics.selectedIndex].text;
+             item.value =event.target.value;
+         },
+         turnBtn:function () {//提交发货
+            var _this = this;
+             _this.parameter();
+             console.log(_this.params)
+            var params = JSON.stringify(_this.params);
+            SupplierApi.addLogistics({params:params},function (res) {
+                if(res.code == 0) {
+                setTimeout(function () {
+                        CAIMEI.dialog('发货成功')
+                    },1000)
+                     window.location.href = '/supplier/order/delivery_record.html?shopOrderID='+_this.params.info.shopOrderId;
+                  }else {
+
+                  }
+             })
+         },
+    },
+    mounted:function () {
+      var _self = this;
+          SupplierApi.kdList(function (res) {
+             if(res.code==0){
+                var data = res.data;
+                data.forEach(function(item){
+                   _self.kdlist.push(item);
+                });
+              console.log(_self.kdlist.length);
+             }
+          });
+        _self.userInfo =JSON.parse(CAIMEI.Storage.getItem('userInfo_deliver'));
+        _self.orderList = JSON.parse(CAIMEI.Storage.getItem('orderList'));
+
+    }
+})

+ 152 - 0
src/main/resources/static/js/supplier-center/order/qualifications.js

@@ -0,0 +1,152 @@
+;
+var logistics = new Vue({
+    el:'#logistics',
+    data:{
+         userInfo:{},
+         orderList:[],
+         GoodsImagesList:[],
+         formData:new FormData(),
+         txtVal: 0,
+         desc:'',
+         kdlist:[],
+         logisticList:[
+             {
+                value:'',
+                name:'',
+                numList:[
+                    {number:''}
+                ]
+             }
+         ],
+         params:{
+            logistics:[],//物流
+            record:[],
+            info:{
+                image:'',
+                note:'',//备注
+                shopOrderId:'',//商品id
+            },
+         },
+         select:'',
+         electShow:false,
+    },
+    methods:{
+        bigImage:function(){
+            var viewer = new Viewer(document.getElementById('uploadGoodsImages'));
+        },
+         uploadGoodsImagesFn: function(event){//上传商品图片
+            var _this = this;
+            var inputDOM = _this.$refs.goodsImages;
+            var file = inputDOM.files;
+            _this.formData.append('file', file[0]);
+            SupplierApi.uploadimg(_this.formData,function(response){
+               _this.GoodsImagesList.push(response.data);
+               _this.params.info.image =_this.GoodsImagesList.join('##').substring();
+                event.target.value = '';
+            });
+        },
+         removeGoodsImagesFn: function(index){//删除商品图片
+            var _this = this;
+            _this.GoodsImagesList.splice(index,1);
+             _this.params.info.image =_this.GoodsImagesList.join('##').substring();
+         },
+         selshow:function(event,index){
+            this.select = index;
+            this.electShow = !this.electShow
+         },
+         addBtn:function () { //添加物流
+             var _this = this;
+             var obj = {
+                        value:'',
+                        name:'',
+                        numList:[
+                            {number:''}
+                        ]
+                  };
+              _this.logisticList.push(obj);
+         },
+         addNum:function(item,index){
+            var _this = this;
+            var obj = {number:''};
+            item.numList.push(obj);
+         },
+         subBtn:function (list) {
+            var _this = this;
+             _this.logisticList.splice(_this.kdlist.indexOf(list), 1);
+         },
+         reduceBtn:function(item){
+            var _this = this;
+             item.numList.splice(item.numList.indexOf(item.numList), 1);
+         },
+         parameter:function(){//参数信息
+           var _this = this;
+           var record=[];
+            $('.pro-information li').each(function(){//发货数
+                  var productobj={};
+                  productobj.orderProductId = $(this).attr('orderproductid');
+                  productobj.num = $(this).find('.del-num').text();
+                    record.push(productobj)
+            });
+             _this.params.record=record
+            _this.params.info.shopOrderId = $('.pro-information li').attr('shopOrderID');
+            _this.logisticList.forEach(function (pros) {
+                    var obj = {};
+                    var Code = pros.value;
+                    var yName = pros.name;
+                    var numList = pros.numList;
+                    numList.forEach(function (item) {
+                        var logisNum = item.number;
+                         obj={
+                            logisticsCompanyCode:Code,
+                            logisticsCompanyName:yName,
+                            number:logisNum
+                        };
+                         if(obj.logisticsCompanyCode==""&&obj.logisticsCompanyName==""){
+                            CAIMEI.Alert('请选择快递公司','确定')
+                        }else if(obj.number==""){
+                            CAIMEI.Alert('请输入快递单号','确定')
+                        }else {
+                         _this.params.logistics.push(obj);
+                        }
+                     })
+              })
+         },
+         ChangeLogistics:function(event,item,index){
+             var donClass = '#logistics'+index;
+             var domLogistics =  document.querySelector(donClass);
+             item.name = domLogistics.options[domLogistics.selectedIndex].text;
+             item.value =event.target.value;
+         },
+         turnBtn:function () {//提交发货
+            var _this = this;
+             _this.parameter();
+             console.log(_this.params)
+            var params = JSON.stringify(_this.params);
+            SupplierApi.addLogistics({params:params},function (res) {
+                if(res.code == 0) {
+                setTimeout(function () {
+                        CAIMEI.dialog('发货成功')
+                    },1000)
+                     window.location.href = '/supplier/order/delivery_record.html?shopOrderID='+_this.params.info.shopOrderId;
+                  }else {
+
+                  }
+             })
+         },
+    },
+    mounted:function () {
+      var _self = this;
+          SupplierApi.kdList(function (res) {
+             if(res.code==0){
+                var data = res.data;
+                data.forEach(function(item){
+                   _self.kdlist.push(item);
+                });
+              console.log(_self.kdlist.length);
+             }
+          });
+        _self.userInfo =JSON.parse(CAIMEI.Storage.getItem('userInfo_deliver'));
+        _self.orderList = JSON.parse(CAIMEI.Storage.getItem('orderList'));
+
+    }
+})

+ 3 - 0
src/main/resources/static/js/supplier-center/order/record.js

@@ -78,6 +78,9 @@ var deliveryRecode = new Vue({
                     window.location.href = '/supplier/order/logistics/add.html?logisticsBatchId='+logisticsBatchID+'&shopOrderId='+shopOrderID+'';
                 },200)
         },
+        qualificationsDetails:function(logisticsBatchID,shopOrderID){
+            window.location.href='/supplier/order/qualifications/detail.html?logisticsBatchId='+logisticsBatchID+'&shopOrderId='+shopOrderID+''
+        },
         Revoke:function (logisticsBatchID,shopOrderID) {//撤销发货
              CAIMEI.Modal('确定要撤销这次发货吗?撤销后需要重新进行发货。','取消','确定',function () {
                  SupplierApi.cancelShipment({logisticsBatchId:logisticsBatchID},function (res) {

+ 3 - 4
src/main/resources/templates/supplier-center/order/delivery-record.html

@@ -77,10 +77,9 @@
                             </p>
                         </ul>
                         <div class="record-button">
-                            <button class="view-logistics" type="button" @click="seelogistic(r.id,r.shopOrderID)">查看物流
-                            </button>
-                            <button class="add-logistics" type="button" @click="addlogistic(r.id,r.shopOrderID)">添加物流
-                            </button>
+                            <button class="view-logistics" type="button" @click="seelogistic(r.id,r.shopOrderID)">查看物流</button>
+                            <button class="add-logistics" type="button" @click="addlogistic(r.id,r.shopOrderID)">添加物流</button>
+                            <button class="add-logistics" type="button" @click="qualificationsDetails(r.id,r.shopOrderID)">商品资质</button>
                             <button class="cancellation-logistics" type="button" v-if="r.mailer == 1"
                                     @click="Revoke(r.id,r.shopOrderID)">撤销发货
                             </button>

+ 140 - 0
src/main/resources/templates/supplier-center/order/qualifications-add.html

@@ -0,0 +1,140 @@
+<!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 rel="stylesheet" th:href="@{/css/base/center.css(v=${version})}" type="text/css">
+    <link rel="stylesheet" th:href="@{/css/supplier-center/order/logistics.css(v=${version})}" type="text/css">
+    <template th:replace="components/analysis"></template>
+</head>
+<body>
+<!-- 引用头部 -->
+<template th:replace="components/header"></template>
+
+<!-- 我的采美 -->
+<div id="addlogistics">
+    <div class="navLayout">
+        <div class="crumbs" v-if="isPC">
+            <span>我的交易</span>
+            <span>&gt;</span>
+            <span>我的订单</span>
+            <span>&gt;</span>
+            <span>添加物流</span>
+        </div>
+        <div class="wrap clear">
+            <!--左侧面包屑-->
+            <div v-show="open">
+                <template th:replace="supplier-center/components/tableft"></template>
+            </div>
+            <div class="right">
+                <div class="userinfo">
+                    <p class="info">
+                        <span>买家信息</span>
+                        <button @click="history.go(-1)" class="comback" type="button">返回</button>
+                    </p>
+                    <div class="user">
+                        <p>买家名称:<span>{{userInfo.name}}</span></p>
+                        <p>收货人:<span>{{userInfo.shouHuoRen}}</span></p>
+                        <p>联系方式:<span>{{userInfo.mobile}}</span></p>
+                    </div>
+                    <p class="address">收货地址:<span>{{userInfo.address}}</span></p>
+                </div>
+                <div class="product-info">
+                    <div class="price">
+                        <p class="protitle">商品信息</p>
+                    </div>
+                    <div class="product">
+                        <ul class="product-title">
+                            <li>商品信息</li>
+                            <li>购买数量</li>
+                            <li>已发数量</li>
+                            <li>未发数量</li>
+                            <li>本次发货</li>
+                        </ul>
+                        <ul class="pro-information">
+                            <li :orderProductId = 'order.orderProductID' :shopOrderID="order.shopOrderID" v-for="order in orderList ">
+                                <div class="product-img">
+                                    <img :src="order.image"/>
+                                    <h3>{{order.productName}}</h3>
+                                </div>
+                                <div>{{order.buyNum}}</div>
+                                <div>{{order.shipmentsNum}}</div>
+                                <div>{{order.notShippedNum}}</div>
+                                <div class="del-num">{{order.num}}</div>
+                            </li>
+                        </ul>
+                    </div>
+                </div>
+                <div class="add-logistics">
+                    <div class="add-wrap">
+                        <div :key="index" class="company-number" v-for="(item,index) in logisticList">
+                            <div class="logist-left">
+                                <i class="red icon">*</i>
+                                物流公司:
+                                <select :id="'logistics'+ index" @change="ChangeLogistics($event,item,index)" class="logistics-company-name company" name="">
+                                    <option value="0">请选择</option>
+                                    <option :key="kdIndex" :name='kd.label' :value="kd.value" v-for="(kd,kdIndex) in kdlist">{{kd.label}}</option>
+                                </select>
+                                <button class="add-company companyBtn icon mIcon" @click="addBtn()" v-if="index==0"></button>
+                                <button class="sub-company companyBtn icon mIcon" @click="subBtn(item)" v-else></button>
+                            </div>
+                            <div class="logist-right">
+                                <div :key="numIndex" v-for="(num,numIndex) in item.numList">
+                                    <i class="red">*</i>
+                                    物流编号:
+                                    <input class="logistics-order-number company" oninput="value=value.replace(/[^\d]/g,'')" placeholder="请输入物流编号" type="text" v-model="num.number">
+                                    <button class="add-company companyBtn icon mIcon" @click="addNum(item,numIndex)"
+                                            v-if="numIndex==0">
+                                    </button>
+                                    <button class="sub-company companyBtn icon mIcon" v-else @click="reduceBtn(item)"></button>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="upload-img">
+                        <div class="release-from ">
+                            <span class="red-color">&nbsp;图片备注:</span>
+                            <div class="release-input" id="uploadGoodsImages">
+                                <div :key="index" class="upload-file" v-for="(item, index) in GoodsImagesList">
+                                    <img :data-image="item" :data-original='item' :src="item" alt="" class="upload-img" @click="bigImage">
+                                    <i @click="removeGoodsImagesFn(index)" class="icon mIcon del"></i>
+                                </div>
+                                <div class="upload-file" v-show="GoodsImagesList.length<5">
+                                    <i class="icon mIcon add"></i>
+                                    <input @change="uploadGoodsImagesFn" accept="image/png,image/jpeg,image/gif,image/jpg" class="input-file" name="file" ref="goodsImages"
+                                           type="file"
+                                           value="">
+                                </div>
+                                <div class="form-upload-tips">
+                                    <i class="icon mIcon icon-wen"></i>
+                                    <div class="wen-tips">请备注快递单,发货现场和货物的照片,最多10张</div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="remarks">
+                        <span class="rema">备注:</span>
+                        <textarea maxlength="200" placeholder="文字备注,200字以内" v-model="params.remark"></textarea>
+                        <div class="size-num">{{params.remark.length}}/200</div>
+                    </div>
+                    <div class="defineBtn">
+                        <div>
+                            <button @click="turnBtn" type="button">确定</button>
+                            <button @click="history.go(-1)" type="button">取消</button>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<!-- 引入底部 -->
+<template th:replace="components/footer"></template>
+<template th:replace="components/foot-link"></template>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/center.js(v=${version})}"></script>
+<script charset="utf-8" th:src="@{/js/common/serviceapi/supplier.service.js(v=${version})}" type="text/javascript"></script>
+<script charset="utf-8" th:src="@{/js/supplier-center/order/logistics-add.js(v=${version})}" type="text/javascript"></script>
+</body>
+</html>

+ 106 - 0
src/main/resources/templates/supplier-center/order/qualifications-details.html

@@ -0,0 +1,106 @@
+<!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/logistics-detail.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
+</head>
+<body>
+<!-- 引用头部 -->
+<template th:replace="components/header"></template>
+
+<!-- 我的采美 -->
+<div id="logisticsDetail">
+    <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="userinfo">
+                    <p class="info">
+                        <span>买家信息</span>
+                        <button type="button" class="comback" @click="history.go(-1)">返回</button>
+                    </p>
+                    <div class="user">
+                        <p>买家名称:<span>{{userInfo.name}}</span></p>
+                        <p>收货人:<span>{{userInfo.shouHuoRen}}</span></p>
+                        <p>联系方式:<span>{{userInfo.mobile}}</span></p>
+                    </div>
+                    <p class="address">收货地址:<span>{{userInfo.address}}</span></p>
+                </div>
+                <div class="record-product">
+                    <div class="protitle">发货信息</div>
+                    <div class="product" >
+                        <ul class="product-title">
+                            <li>商品信息</li>
+                            <li>购买数量</li>
+                            <li>已发数量</li>
+                            <li>未发数量</li>
+                            <li>本次发货</li>
+                        </ul>
+                        <ul class="product-info">
+                            <li v-for="order in listData.logisticsRecordList">
+                                <div class="product-img">
+                                    <img :src="order.image"/>
+                                    <h3>{{order.productName}}</h3>
+                                </div>
+                                <div>{{order.buyNum}}</div>
+                                <div>{{order.shipmentsNum}}</div>
+                                <div>{{order.notShippedNum}}</div>
+                                <div>{{order.num}}</div>
+                            </li>
+                            <p class="record-time">发货时间:{{listData.deliveryTime}}</p>
+                            <div class="img-remark">
+                                <span>图片备注:</span>
+                                <ul v-if="listData.remarkImages!=null" id="uploadGoodsImages">
+                                    <li v-for="cmImg in listData.remarkImages">
+                                        <img :src="cmImg" @click="bigImage">
+                                    </li>
+                                </ul>
+                                <span style="color: #22272e" v-else>暂无图片备注</span>
+                            </div>
+                            <p class="remark">文字备注:
+                                <span v-if="listData.remark!=''&&listData.remark!=null">{{listData.remark}}</span>
+                                <span v-else>暂无备注</span>
+                            </p>
+                        </ul>
+
+                    </div>
+                    <div class="logis">
+                        <div class="delivery-logis-title">物流信息</div>
+                        <div id="InformationList" v-if="listData.logisticsInformationList.length>0">
+                            <div class="logistics-info" v-for="logis in listData.logisticsInformationList">
+                                <div class="logistics-time">物流时间:{{logis.updateDate}}</div>
+                                <div class="logistics-company">物流公司:{{logis.logisticsCompanyName}}</div>
+                                <div class="logistics-number">物流单号:{{logis.nu}}</div>
+                            </div>
+                        </div>
+                        <div class="logistics-record" v-else>
+                            <p>暂无物流信息</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<!-- 引入底部 -->
+<template th:replace="components/footer"></template>
+<template th:replace="components/foot-link"></template>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/center.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/logistics-detail.js(v=${version})}"></script>
+</body>
+</html>