Browse Source

首页改版,供应商店铺类别

zhengjinyi 1 year ago
parent
commit
253fa52328

+ 5 - 1
src/main/resources/static/css/base/base.h5.css

@@ -2,6 +2,10 @@
 /**
 * 移动端
 */
+/*定义滚动条样式*/
+::-webkit-scrollbar{display: none;}
+::-webkit-scrollbar-track{display: none;}
+::-webkit-scrollbar-thumb{display: none;}
 .noneImportant .footTop,
 .noneImportant .footMain{display:none!important;}
 .wechat_qrcode{display: none;}
@@ -280,7 +284,7 @@
 .cmbeans-alert-content-bean .icon-text{font-weight: bold;}
 .cmbeans-alert-content-tips{width: 100%;height: 5.6vw;line-height: 5.6vw;margin-top: 4vw;box-sizing: border-box;display: flex;flex-direction: column;align-items: center;}
 .cmbeans-alert-content-tips .tips{width: 27.2vw;height: 5.6vw;background-color: rgba(226, 91, 28, 0.1);border-radius: 2.8vw;line-height: 5.6vw;font-size: 2.6vw;color: #FF5B00;text-align: center;padding: 0 1.2vw;}
-#globalHead{position: sticky !important; top: 0 !important; left: 0 !important; z-index: 1200;}
+#globalHead{width: 100%;box-sizing: border-box; position: fixed !important; top: 0 !important; left: 0 !important; z-index: 1200;}
 
 /*ross宣传弹窗*/
 .ross-banner-fiexd{width: 100%;height: 113.8vw;position: fixed;z-index: 999;background: linear-gradient(0deg, #FFA86E, #FF5B00);left: 0;right: 0;bottom: -113.8vw;box-sizing: border-box;padding: 4vw;background-size: cover;animation: all 1s;}

+ 3 - 3
src/main/resources/static/css/base/base.pc.css

@@ -234,7 +234,7 @@ iframe{width:320px !important;height: 280px !important}
 .baseTopNav>.wrap{height:44px;box-sizing:border-box;position:relative;z-index:991;}
 .baseTopNav .home,.baseTopNav .classBtn,.baseTopNav .navBox{float:left}
 .baseTopNav .service{float:right}
-.baseTopNav .nav{display:inline-block;height:44px;line-height:44px;padding:0 34px;color:#4A4F58;font-size:14px;text-align:center;position:relative;border-left:1px solid transparent;border-right:1px solid transparent}
+.baseTopNav .nav{display:inline-block;height:44px;line-height:44px;padding:0 30px;color:#4A4F58;font-size:14px;text-align:center;position:relative;border-left:1px solid transparent;border-right:1px solid transparent}
 .baseTopNav .nav:hover,.baseTopNav .nav.on{color:#FF5B00;border-image:-webkit-linear-gradient(white,#FF5B00,white)1 20 1;border-image:-moz-linear-gradient(white,#FF5B00,white)1 20 1;border-image:-o-linear-gradient(white,#FF5B00,white)1 20 1;border-image:linear-gradient(white,#FF5B00,white)1 20 1}
 .baseTopNav .classBtn:after{background-position:0 -31px;transition: all .5s;}
 .baseTopNav .classBtn.on:after{transform:rotate(90deg);}
@@ -247,8 +247,8 @@ iframe{width:320px !important;height: 280px !important}
 .baseTopNav .navBox li:nth-of-type(6) .nav:after{background-position:-210px -31px}
 .baseTopNav .navBox li:nth-of-type(7) .nav:after{background-position:-240px -31px}
 .baseTopNav .service:after{background-position:-270px -31px}
-.baseTopNav .navBox{width:500px}
-.baseTopNav .navBox ul{width:980px;}
+.baseTopNav .navBox{width:auto;float: left;}
+.baseTopNav .navBox ul{width:auto;float: left;}
 .baseTopNav .navBox li{float:left;position:relative}
 .baseTopNav .classifyBox{display:none;position:absolute;left:0;top:44px;z-index:990;padding: 0 0 20px 0;}
 /* 分类 */

+ 17 - 5
src/main/resources/static/css/index/index_new.h5.css

@@ -1,10 +1,22 @@
  /* 首页导航 */
-.mNavBox{width:100%;position:fixed;top:26.8vw;left:0;background:#FFF;height: 8vw; z-index: 999;overflow-x: scroll;}
-.mNavBox .nav{margin:0;display:block;box-sizing: border-box;padding:0 2.2vw;text-align:center;color:#4A4F58;font-size:3.4vw;float: left;}
-.mNavBox .nav-icon{display:none;}
-.mNavBox .nav p{line-height:8vw;white-space:nowrap;}
+.mNavBox{width:100%;position:fixed;top:26.8vw;left:0;background:#FFF;height: 10vw; z-index: 999;padding: 0 10vw 0 2vw;box-sizing: border-box;}
+.mNavBox .mNavBox-main{display: flex;white-space: nowrap;overflow-x: auto;font-size: 0;}
+.mNavBox .mNavBox-main .nav{margin:0;display:block;box-sizing: border-box;padding:0 2.2vw;text-align:center;color:#4A4F58;font-size:3.4vw;float: left;}
+.mNavBox .mNavBox-main .nav.active{ color: #ff5b00;font-weight: bold;position: relative; }
+.mNavBox .mNavBox-main .nav.active:before{content: '';width: 4vw;height: 0.8vw;border-radius: 0.4vw;background: #ff5b00;position: absolute;bottom: 1vw;left: 50%;margin-left: -2vw;}
+.mNavBox .mNavBox-main .nav-icon{display:none;}
+.mNavBox .mNavBox-main .nav p{line-height:10vw;white-space:nowrap;}
+.mNavBox .mNavBox-down{ width: 10vw;height: 10vw;position: absolute;right: 0;top: 0;background: #FFFFFF; }
+.mNavBox .mNavBox-down .mIcon{ width: 10vw;height: 10vw;display: block;}
+.mNavBox .mNavBox-down .mIcon:before{ width: 10vw;height: 10vw;background-position: -48.8vw 1.5vw;}
+.mNavBox .mNavBox-down.none .mIcon:before{ width: 10vw;height: 10vw;background-position: -40vw 1.5vw;}
+.mNavBox-dropdown{ width: 100%;min-height:40vw;background: #FFFFFF;box-sizing: border-box;padding: 3vw;position: absolute;top: 9.5vw;left: 0;border-radius: 0 0 4vw 4vw;}
+.mNavBox-dropdown .drop-item{ padding: 0 3vw;height: 7.2vw;float: left;line-height:7.2vw;background: #f5f5f5;font-size: 3.2vw;margin: 1.6vw;text-align: center;border: 1px solid #f5f5f5;color: #666666;border-radius: 1vw; }
+.mNavBox-dropdown .drop-item.active{ background: #ffffff;border-color: #ff5b00;color: #ff5b00;font-weight: bold;}
+.mNavBox-dropdown-more{ width: 100%;height: 100%;position: fixed;top: 0;left: 0;background: rgba(0,0,0,0.7);z-index: 888;}
 
-#container{ margin-top: 9vw; }
+
+#container{ margin-top: 36.8vw; }
 /* 轮播 */
 #swiper-container{width:100%;height:48vw;overflow:hidden;position:relative}
 #swiper-container .swiper-wrapper{position:relative;height:100%;z-index:0}

+ 13 - 8
src/main/resources/static/css/supplier-center/shop/disguise.css

@@ -11,23 +11,28 @@
 
     .bgFrom{position: fixed; background: rgba(34,39,46, 0.3);top: 0;left: 0; width: 100%;height: 100%;z-index: 1000;opacity: 0}
     .bgFrom.show{opacity: 1}
-    .modalForm{ width: 650px;height: 350px;background-color: #ffffff;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.16);border-radius: 2px;border: solid 1px #efefef; position: absolute;left: 0;top: 0;right: 0;bottom: 0; margin: auto }
+    .modalForm{ width: 650px;height: 470px;background-color: #ffffff;box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.16);border-radius: 2px;border: solid 1px #efefef; position: absolute;left: 0;top: 0;right: 0;bottom: 0; margin: auto }
     .modal-header{ height: 42px; background-color: #f8f8f8; border-radius: 2px 2px 0px 0px;border: solid 1px #efefef; line-height: 42px;padding: 0 16px;color: #333333;}
     .icon.close{float: right; cursor: pointer;}
     .icon.close:before{width: 20px;height: 20px;background-position: -315px 2px}
+    .modal-div{ width: 100%;float: left; }
     .modal-div span{color: #22272e;}
-    .modal-div input{width: 560px;height: 36px;line-height:36px;border-radius: 2px;border: solid 1px #b8bfca;margin-bottom: 15px;color: #9aa5b5;padding-left: 5px}
+    .modal-div input{width: 560px;height: 36px;line-height:36px;border-radius: 2px;border: solid 1px #b8bfca;margin-bottom: 15px;color: #333333;padding-left: 5px}
     .modal-content{padding: 15px}
-    .upimg { width: 56px;height: 56px;background-color: #ffffff;border-radius: 2px; border: solid 1px #b8bfca; display: inline-block; position: relative;}
-    .icon.add:before { width: 25px;height: 25px;background-position: -163px -370px; position: relative;top: 15px;right: -15px;}
-    .add-pic {width: 56px;height: 56px;position: absolute;top: 50%; left: 50%;transform: translate(-50%,-50%); border-radius: 2px;opacity: 0;cursor: pointer;}
+    .upload-img{ width: 100%;height: auto; float: left;}
+    .upload-img .label{ float: left;height: 120px; }
+    .upimg { float: left;width: 400px;height: 120px;background-color: #ffffff;border-radius: 2px; border: solid 1px #b8bfca; display: inline-block; position: relative;}
+    .upimg .icon{ width: 30px;height: 30px;position:absolute;top:40px;left: 50%;margin-left: -15px;  }
+    .upimg .icon.add:before { width: 30px;height: 30px;background-position: -163px -370px; position: relative;top: 0;right: 0;}
+    .add-pic {width: 400px;height: 120px;position: absolute;top: 50%; left: 50%;transform: translate(-50%,-50%); border-radius: 2px;opacity: 0;cursor: pointer;}
     .upimg img {width: 100%; height: 100%;}
     .red{color: red}
-    .upload-img .up{ vertical-align: baseline; height: 60px;display: inline-block}
+    .upload-img .up{ vertical-align: baseline; height: 120px;display: inline-block}
     .colorstyle{color: #FF5B00}
-    .saveBtn{ text-align: center;float: right;width: 68px;height: 32px; background-color: #FF5B00; border-radius: 2px;line-height: 32px;color: #ffffff;cursor: pointer;}
-    .Note{float: left}
+    .saveBtn{ width: 100%;height: 40px;float: left; text-align: right;}
+    .Note{float: left;margin-top: 10px;}
     .navLayout{min-height: auto;}
+    .tablie{ width: 120px; white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}
 
     .pagination{width: 100%;margin-top: 10px;float: left; background: #FFFFFF;padding: 8px 0px;box-sizing: border-box;}
   }

+ 5 - 1
src/main/resources/static/css/supplier/index.css

@@ -30,10 +30,14 @@ li{list-style:none}
     .supplierTit .search .searchBtn{position:absolute;right:0;top:0;font-size:0;padding:7px 12px;height:30px;line-height:30px}
     .supplierTit .search .searchBtn:before{width:30px;height:30px;background-position:4px 4px}
     .supplierInfo{width:1200px;margin:0 auto;}
-    .supplierInfo .tabTit{width:100%;height:40px;line-height:40px;margin:16px auto;background:#FFF;border-bottom:1px solid #ffe6dc;font-size:16px;color:#93979F}
+    .supplierInfo .tabTit{width:100%;height:40px;line-height:40px;margin:16px auto 0;background:#FFF;border-bottom:1px solid #ffe6dc;font-size:16px;color:#93979F}
     .supplierInfo .tabTit span{display:inline-block;box-sizing:border-box;min-width:130px;text-align:center;height:100%;padding:0 32px;cursor:pointer}
     .supplierInfo .tabTit span:hover{color:#E15621}
     .supplierInfo .tabTit span.on,.supplierInfo .tabTit span.on:hover{color:#E15621;background:#ffe6dc;font-weight:bold;}
+
+    .supplierInfo .shop-tabsItem{ width:100%;height:auto;box-sizing: border-box;padding: 22px;background: #FFFFFF; margin-bottom: 16px;}
+    .supplierInfo .shop-tabsItem .tabs-list{float: left; display: block;box-sizing: border-box;height: 56px;padding: 0 20px;margin-right: 16px; background: #F5F5F5;line-height: 56px;text-align: center;font-size: 16px;color: #4A4F58;}
+    .supplierInfo .shop-tabsItem .tabs-list.active{ background: #FFE6DC;color: #FF5B00; }
     .supplierInfo .tabCon{width:100%;}
     .supplierInfo .infoBox{box-sizing:border-box;padding:16px;font-size:16px;line-height:22px;color:#4A4F58;background:#FFF;}
     .supplierInfo .infoBox .part{margin-top:30px}

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

@@ -1187,11 +1187,32 @@ var SupplierApi = {
                 url: '/user/shop/saveShopCategory',
                 type:'post',
                 data:params,
+                json:false
+            }).then(function (res) {
+                callback(res);
+            });
+        },
+        // 供应商主页装扮banner图排序
+        renewShopBannerSort: function (params, callback) {
+            Http.AjaxService({
+                url: '/user/shop/renewShopBannerSort',
+                type:'get',
+                data:params,
+                json:false,
+            }).then(function (res) {
+                callback(res);
+            });
+        },
+        // 供应商主页装扮banner图排序
+        getShopHomeData: function (params, callback) {
+            Http.AjaxService({
+                url: '/user/shop/home/data',
+                type:'get',
+                data:params,
                 json:false,
             }).then(function (res) {
                 callback(res);
             });
         }
 
-
 };

+ 7 - 0
src/main/resources/static/js/index.js

@@ -15,11 +15,18 @@ var homeData = new Vue({
         hotListPageFloor:[],// 新皮橱窗
         homePageFloor:[],//楼层
         quickoperaList: [], // 快捷运营入口列表
+        dropScreenShow:false
     },
     filters: {
 
     },
     methods: {
+        showDropScreen(){
+            this.dropScreenShow = !this.dropScreenShow
+        },
+        hideDropScreen(){
+            this.dropScreenShow = false
+        },
         //处理金额
         filtersFormat(value) {
             if (value) {

+ 1 - 0
src/main/resources/static/js/mixins/cmSysMixins.js

@@ -63,6 +63,7 @@ var cmSysVitaMixins = function () {
                     this.popUpParams.keyword = this.handleProsKey ? this.handleProsKey : '' || this.handleShopKey ? this.handleShopKey : ''
                     this.cmSysParams.behaviorType = 2;
                     if (!GLOBAL_USER_ID>0) {
+                        console.log('111111111111111')
                         this.userInformationIsClick()
                     }
                 }

+ 55 - 71
src/main/resources/static/js/supplier-center/shop/category-edit.js

@@ -4,93 +4,72 @@ var decoration = new Vue({
     mixins: [categoryMixins,cmSysVitaMixins],
     data:{
         rules: {
-            name: [{ required: true, message: '请输入类别名称', trigger: 'blur' }],
+            category: [{ required: true, message: '请输入类别名称', trigger: 'blur' }],
             sort: [{ required: true, message: '请输入类别排序', trigger: 'blur' }],
             products: [{ required: true, type: 'array', message: '请添加一个商品', trigger: ['change'] }],
         },
         shopId:'',
+        formType:'',
         dialogVisible:false,
+        productList:[],
         disguiseForm:{
-            name:'',
+            id:'',
+            shopId:'',
+            category:'',
             sort:'',
-            products:[
-                {
-                    mainImage:'https://img.caimei365.com/group1/M00/04/2A/rB-lGGLssqKARicSAAQVGeORd5E481.jpg',
-                    productName:'OMICY无敏氏凝润舒缓冻膜'
-                },
-                {
-                    mainImage:'https://img.caimei365.com/group1/M00/04/2A/rB-lGGLssqKARicSAAQVGeORd5E481.jpg',
-                    productName:'OMICY无敏氏凝润舒缓冻膜'
-                },
-                {
-                    mainImage:'https://img.caimei365.com/group1/M00/04/2A/rB-lGGLssqKARicSAAQVGeORd5E481.jpg',
-                    productName:'OMICY无敏氏凝润舒缓冻膜'
-                },
-                {
-                    mainImage:'https://img.caimei365.com/group1/M00/04/2A/rB-lGGLssqKARicSAAQVGeORd5E481.jpg',
-                    productName:'OMICY无敏氏凝润舒缓冻膜'
-                },
-                {
-                    mainImage:'https://img.caimei365.com/group1/M00/04/2A/rB-lGGLssqKARicSAAQVGeORd5E481.jpg',
-                    productName:'OMICY无敏氏凝润舒缓冻膜'
-                },
-                {
-                    mainImage:'https://img.caimei365.com/group1/M00/04/2A/rB-lGGLssqKARicSAAQVGeORd5E481.jpg',
-                    productName:'OMICY无敏氏凝润舒缓冻膜'
-                },
-                {
-                    mainImage:'https://img.caimei365.com/group1/M00/04/2A/rB-lGGLssqKARicSAAQVGeORd5E481.jpg',
-                    productName:'OMICY无敏氏凝润舒缓冻膜'
-                },
-                {
-                    mainImage:'https://img.caimei365.com/group1/M00/04/2A/rB-lGGLssqKARicSAAQVGeORd5E481.jpg',
-                    productName:'OMICY无敏氏凝润舒缓冻膜'
-                },
-                {
-                    mainImage:'https://img.caimei365.com/group1/M00/04/2A/rB-lGGLssqKARicSAAQVGeORd5E481.jpg',
-                    productName:'OMICY无敏氏凝润舒缓冻膜'
-                },
-                {
-                    mainImage:'https://img.caimei365.com/group1/M00/04/2A/rB-lGGLssqKARicSAAQVGeORd5E481.jpg',
-                    productName:'OMICY无敏氏凝润舒缓冻膜'
-                },
-                {
-                    mainImage:'https://img.caimei365.com/group1/M00/04/2A/rB-lGGLssqKARicSAAQVGeORd5E481.jpg',
-                    productName:'OMICY无敏氏凝润舒缓冻膜'
-                },
-                {
-                    mainImage:'https://img.caimei365.com/group1/M00/04/2A/rB-lGGLssqKARicSAAQVGeORd5E481.jpg',
-                    productName:'OMICY无敏氏凝润舒缓冻膜'
-                },
-                {
-                    mainImage:'https://img.caimei365.com/group1/M00/04/2A/rB-lGGLssqKARicSAAQVGeORd5E481.jpg',
-                    productName:'OMICY无敏氏凝润舒缓冻膜'
-                },
-                {
-                    mainImage:'https://img.caimei365.com/group1/M00/04/2A/rB-lGGLssqKARicSAAQVGeORd5E481.jpg',
-                    productName:'OMICY无敏氏凝润舒缓冻膜'
-                },
-                {
-                    mainImage:'https://img.caimei365.com/group1/M00/04/2A/rB-lGGLssqKARicSAAQVGeORd5E481.jpg',
-                    productName:'OMICY无敏氏凝润舒缓冻膜'
-                }
-            ],
+            productIds:'',
+            products:[]
         }
     },
     methods:{
         // 显示选择商品弹窗
         handleDialogVisible() {
+            this.getList()
             this.dialogVisible = true
         },
+        // 获取广告图片列
+        echoShopCategory(params) {
+            const _this = this;
+            SupplierApi.echoShopCategory(params, function (res) {
+                if (res.code === 0) {
+                    const data = res.data
+                    _this.disguiseForm = { ...this.disguiseForm, ...data }
+                }
+            });
+        },
+        // 提交保存
+        handleSavsDisguise(){
+            const  _this = this;
+            this.$refs['dataForm'].validate(valid => {
+                if (valid) {
+                    console.log('disguiseForm',_this.disguiseForm)
+                    _this.$confirm('确定提交保存数据吗?', '提示', {
+                        confirmButtonText: '确定',
+                        cancelButtonText: '取消',
+                        type: 'warning'
+                    }).then(() => {
+                        const productIds = []
+                        _this.disguiseForm.products.forEach((ele) => {
+                            productIds.push(ele.productId)
+                        })
+                        this.disguiseForm.productIds = productIds.join(',')
+                        _this.saveShopCategory(_this.disguiseForm)
+                    })
+                } else {
+                    return false
+                }
+            })
+        },
         // 获取广告图片列表
-        getList() {
-            var _self = this;
-            SupplierApi.dressUpList({shopId: _self.listQuery.shopId}, function (res) {
+        saveShopCategory(params) {
+            const _this = this;
+            SupplierApi.saveShopCategory({params:JSON.stringify(params)}, function (res) {
                 if (res.code === 0) {
                     console.log(res);
-                    if (res.data.length > 0) {
-                        _self.list = res.data;
-                    }
+                    _this.$message({ message: '保存成功',type: 'success'});
+                    setTimeout(()=>{
+                        window.location.href = '/supplier/disguise.html';
+                    },2000)
                 }
             });
         },
@@ -107,7 +86,12 @@ var decoration = new Vue({
     },
     mounted:function () {
         if (globalUserData) {
-            this.shopId = globalUserData.shopId;
+            this.listQuery.shopId =this.disguiseForm.shopId = globalUserData.shopId;
+        }
+        this.formType = CAIMEI.getUrlParam('type') ? CAIMEI.getUrlParam('type') : 'add' ;
+        this.disguiseForm.id = this.listQuery.categoryId =  CAIMEI.getUrlParam('type') ? CAIMEI.getUrlParam('id') : '';
+        if(this.formType === 'edit'){
+            this.echoShopCategory({ id:this.disguiseForm.id})
         }
         // this.getList();
         $('.navLayout').find('.navList').removeClass("on").find('.con').hide().find('a').removeClass("on");

+ 2 - 31
src/main/resources/static/js/supplier-center/shop/disguise.js

@@ -9,35 +9,6 @@ var decoration = new Vue({
         activeName:'first',
     },
     methods:{
-        uploadlogo() { //上传图片
-            const _this = this;
-            const inputDOM = _this.$refs.images;
-            const file = inputDOM.files;
-            const formData = new FormData();
-            formData.append('file', file[0]);
-            SupplierApi.uploadimg(formData, function (response) {
-                _this.listQuery.image = response.data;
-                _this.logoShow = true;
-                _this.iconflag = false;
-                event.target.value = '';
-            });
-        },
-        submit(){//提交
-            const _this = this;
-            if(_this.name.indexOf('编辑') > -1) {
-                _this.listQuery.shopBannerID = _this.shopBannerId
-            }
-            if(_this.listQuery.image===''){
-                CAIMEI.dialog('请上传广告图片')
-            }else {
-                console.log(_this.listQuery);
-                SupplierApi.ShopBanner(_this.listQuery, function (res) {
-                    debugger
-                    CAIMEI.dialog('提交成功');
-                    location.reload()
-                })
-            }
-        },
         handleClick(tab, event) {
             if(this.activeName === 'first'){
                 this.getCategoryList()
@@ -48,14 +19,14 @@ var decoration = new Vue({
     },
     mounted:function () {
         if (globalUserData) {
-            this.categoryQuery.shopId = this.bannerQuery.shopId = globalUserData.shopId;
+            this.categoryQuery.shopId = this.bannerQuery.shopId = this.bannerForm.shopId = globalUserData.shopId;
         }
         if(isPC){
             this.layout ='total, prev, pager, next, jumper';
         }else{
             this.layout ='total, prev, pager, next';
         }
-        // this.getList();
+        this.getCategoryList();
         $('.navLayout').find('.navList').removeClass("on").find('.con').hide().find('a').removeClass("on");
         $('.navLayout').find('.navList').eq(1).addClass("on").find('.con').show().find('a').eq(1).addClass("on");
     }

+ 19 - 12
src/main/resources/static/js/supplier-center/shop/mixins/categoryMixins.js

@@ -4,9 +4,11 @@ const categoryMixins = function () {
             return {
                 visible: true,
                 listQuery: {
-                    pageNum: 1, // 页码
-                    pageSize: 100, // 页面数据数
-                    shopName: '' // 供应商公司名称
+                    categoryId: '',
+                    name: '',
+                    shopId:'',
+                    pageNum:1,
+                    pageSize:10
                 },
                 list: [],
                 total: 0,
@@ -31,14 +33,18 @@ const categoryMixins = function () {
             },
             // 获取所有供应商列表
             getShopList() {
-                // try {
-                //     const res = await getShopList(this.listQuery)
-                //     this.list = res.data.results
-                //     this.total = res.data.totalRecord
-                //     this.isLoading = false
-                // } catch (error) {
-                //     console.log(error)
-                // }
+                const _this = this;
+                SupplierApi.getShopProductList(this.listQuery, function (res) {
+                    if (res.code === 0) {
+                        console.log(res);
+                        const data = res.data
+                        if (data.results.length > 0) {
+                            _this.list = data.results
+                            _this.total = data.totalRecord
+                            _this.isLoading = false
+                        }
+                    }
+                });
             },
             // 选择供应商
             handleSelectionChange(row) {
@@ -47,7 +53,8 @@ const categoryMixins = function () {
             },
             // 确认选择供应商
             handleConfirm() {
-                this.$emit('confirm', this.shopsRadio)
+                this.disguiseForm.products = this.shopsRadio
+                this.handleCanle()
             },
             handleCanle() {
                 // 取消弹窗

+ 88 - 50
src/main/resources/static/js/supplier-center/shop/mixins/disguiseMixins.js

@@ -5,16 +5,16 @@ const disguiseMixins = function () {
                 total:0,
                 bannerTotal:0,
                 layout: '',
-                listLoading:false,
-                bannerLoading:false,
+                listLoading:true,
+                bannerLoading:true,
                 categoryQuery:{
-                    name: '',
+                    category: '',
                     shopId:'',
                     pageNum:1,
                     pageSize:10
                 },
                 bannerQuery:{
-                    name: '',
+                    title: '',
                     shopId:'',
                     pageNum:1,
                     pageSize:10
@@ -22,42 +22,15 @@ const disguiseMixins = function () {
                 formTitle:'添加广告图',
                 bannerForm:{
                     id: '',
+                    sort:1,
                     shopId:'',
                     title:'',
                     link:'',
                     info:'',
                     image:'',
                 },
-                categoryList:[
-                    {
-                        name:'耗材',
-                        number:10,
-                        sort:1,
-                        time:'2023-11-20 11:51:22',
-                    },
-                    {
-                        name:'玻尿酸',
-                        number:10,
-                        sort:2,
-                        time:'2023-11-20 11:51:22',
-                    },
-                ],
-                bannerList:[
-                    {
-                        name:'耗材',
-                        number:'https://www.caimei365.com/',
-                        sort:1,
-                        text:'阿三大蘇打颯颯大蘇打撒旦',
-                        time:'2023-11-20 11:51:22',
-                    },
-                    {
-                        name:'玻尿酸',
-                        number:'https://www.caimei365.com/',
-                        sort:2,
-                        text:'阿三大蘇打颯颯大蘇打撒旦',
-                        time:'2023-11-20 11:51:22',
-                    },
-                ]
+                categoryList:[],
+                bannerList:[]
             }
         },
         computed: {
@@ -81,24 +54,37 @@ const disguiseMixins = function () {
             // 获取类别列表
             getDisguiseCategory(){
                 const _self = this;
-                SupplierApi.dressUpList(this.categoryQuery, function (res) {
+                SupplierApi.getShopCategory(this.categoryQuery, function (res) {
                     if (res.code === 0) {
-                        console.log(res);
-                        if (res.data.length > 0) {
-                            _self.categoryList = res.data;
+                        const data = res.data
+                        if (data.results.length > 0) {
+                            _self.categoryList = data.results
+                            _self.total = data.totalRecord
                         }
+                        _self.listLoading = false
                     }
                 });
             },
             // 类别排序
             handleCategorySort(row) {
-
+                const params = { id:row.id,sort:row.sort }
+                this.renewShopCategory(params)
             },
             // 编辑类别排
             handleEditCategory(row) {
-                window.location.href='/supplier/category-edit.html?id='+row.id;
+                window.location.href='/supplier/category-edit.html?type=edit&id='+row.id;
+            },
+            // 类别排序
+            renewShopCategory(params){
+                const _this = this;
+                console.log('params',params)
+                SupplierApi.renewShopCategory(params, function (res) {
+                    if (res.code === 0) {
+                        _this.getCategoryList()
+                    }
+                })
             },
-            // 删除类别排
+            // 删除类别
             handleDelCategory(row){
                 const _this = this;
                 this.$confirm('确定要删除该类别吗?', '提示', {
@@ -106,7 +92,18 @@ const disguiseMixins = function () {
                     cancelButtonText: '取消',
                     type: 'warning'
                 }).then(() => {
-                    this.deleteShopBanner(row.id)
+                    this.removeCategory({id:row.id})
+                })
+            },
+            // 删除类别
+            removeCategory(params){
+                const _this = this;
+                console.log('params',params)
+                SupplierApi.removeCategory(params, function (res) {
+                    if (res.code === 0) {
+                        _this.$message({ message: '删除成功',type: 'success'});
+                        _this.getCategoryList()
+                    }
                 })
             },
             //切换广告图页码
@@ -117,24 +114,36 @@ const disguiseMixins = function () {
             // 获取广告图列表
             getBannerList() {
                 this.bannerQuery.pageNum = 1
-                // this.bannerList=[]
-                // this.getDisguiseBanner()
+                this.bannerList=[]
+                this.getDisguiseBanner()
             },
             // 获取广告图列表
             getDisguiseBanner(){
                 const _self = this;
                 SupplierApi.dressUpList(this.bannerQuery, function (res) {
                     if (res.code === 0) {
-                        console.log(res);
-                        if (res.data.length > 0) {
-                            _self.bannerList = res.data;
+                        const data = res.data
+                        if (data.results.length > 0) {
+                            _self.bannerList = data.results
+                            _self.bannerTotal = data.totalRecord
                         }
+                        _self.bannerLoading = false
                     }
                 });
             },
-            // 类别排序
+            // banner排序
             handleBannerSort(row) {
-
+                const params = { id:row.id,sort:row.sort }
+                this.renewShopBannerSort(params)
+            },
+            // banner排序
+            renewShopBannerSort(params){
+                const _this = this;
+                SupplierApi.renewShopBannerSort(params, function (res) {
+                    if (res.code === 0) {
+                        _this.getBannerList()
+                    }
+                })
             },
             // 添加广告图
             handleAddBanner() {
@@ -174,10 +183,39 @@ const disguiseMixins = function () {
             handleCloseBanner() {
                 this.dialogVisible = false;
                 this.bannerForm.title = '';
+                this.bannerForm.sort = 1;
                 this.bannerForm.link = '';
                 this.bannerForm.info = '';
                 this.bannerForm.image = '';
-            }
+            },
+            handleUploadlogo() { //上传图片
+                const _this = this;
+                const inputDOM = this.$refs.images;
+                const file = inputDOM.files;
+                const formData = new FormData();
+                formData.append('file', file[0]);
+                SupplierApi.uploadimg(formData, function (response) {
+                    _this.bannerForm.image = response.data;
+                    _this.logoShow = true;
+                    _this.iconflag = false;
+                    event.target.value = '';
+                });
+            },
+            handleSaveBanner(){//提交
+                if(this.bannerForm.image===''){
+                    CAIMEI.dialog('请上传广告图片')
+                    return
+                }
+                this.sveShopBanner(this.bannerForm)
+            },
+            sveShopBanner(params){
+                const _this = this;
+                SupplierApi.ShopBanner(params, function (res) {
+                    _this.$message({ message: '保存成功',type: 'success'});
+                    _this.getBannerList();
+                    _this.dialogVisible = false
+                })
+            },
         }
     }
 }();

+ 72 - 45
src/main/resources/static/js/supplier/index.js

@@ -6,7 +6,10 @@ var supplierHome = new Vue({
         userId: 0,
         supplierInfo:{},
         supplierBanner: [],
+        shopCategory: [],
         mainProducts:[],
+        choiceIndex:'',
+        handleTabIndex:1,
         params: {
             size: 12,
             num: 1,
@@ -15,6 +18,8 @@ var supplierHome = new Vue({
         },
         listRecord:0,
         productLists:[],
+        categoryProducts:[],// 类别商品列表
+        isShopAll:true,
         addhtml:'<span class="tag">美博会</span>'
     },
     computed: {
@@ -41,8 +46,11 @@ var supplierHome = new Vue({
         }
     },
     methods: {
+        handleTabClick(type){
+            this.handleTabIndex = type
+        },
         // 是否显示vip标签价格
-        showVipPriceTag: function(pros){
+        showVipPriceTag(pros){
             //非会员
             // if(!GLOBAL_VIP_FLAG === 1) return false;
             // 商品所有机构可见
@@ -54,20 +62,14 @@ var supplierHome = new Vue({
             // 其它
             return false;
         },
-        getShopInfo: function(){
-            var _self = this;
-            $.getJSON(coreServer + "/user/shop/home/data",{shopId: this.params.id}).done(function (r) {
-                if (r.code === 0 && r.data) {
-                    _self.supplierInfo = r.data;
-                }
-            });
-        },
-        getBanners: function(){
-            var _self = this;
-            $.getJSON(coreServer + "/user/shop/home/images",{shopId: this.params.id}).done(function (r) {
-                if (r.code === 0 && r.data) {
-                   _self.supplierBanner = r.data;
-                    _self.supplierBanner = r.data;
+        getShopInfo(){
+            const _self = this;
+            SupplierApi.getShopHomeData({shopId: this.params.id}, function (res) {
+                if (res.code === 0) {
+                    const data = res.data
+                    _self.supplierInfo = data;
+                    _self.supplierBanner = data.shopHomeImages // 供应商轮播
+                    _self.shopCategory = data.shopCategory// 供应商类别
                     setTimeout(function(){
                         if (isPC) {
                             $('#supplierBanner').slide({
@@ -75,7 +77,7 @@ var supplierHome = new Vue({
                                 ,titCell:".swiper-pagination span"
                                 ,effect: "leftLoop"
                                 ,prevCell:".swiper-button-prev"
-		                        ,nextCell:".swiper-button-next"
+                                ,nextCell:".swiper-button-next"
                                 ,interTime: 2000
                                 ,autoPlay: true
                                 ,autoPage: false
@@ -102,7 +104,42 @@ var supplierHome = new Vue({
                 }
             });
         },
-        getMainProducts: function(){
+        handleChangeAll(){
+            this.choiceIndex = ''
+            this.isShopAll = true
+            this.getMainProducts()
+        },
+        handleCategory(category, index){
+            this.isShopAll = false
+            this.choiceIndex = index
+            this.getCategoryProducts({ shopId:this.handleShopId,categoryId:category.id })
+        },
+        // 获取类别商品列表
+        getCategoryProducts(params){
+            const _self = this;
+            SupplierApi.getCategoryProducts(params, function (res) {
+                if (res.code === 0) {
+                    if(_self.userId && _self.userId>0){
+                        const productIdArr = [];
+                        res.data.map((item) =>{
+                            // 0公开价格 1不公开价格 2仅对会员机构公开
+                            if (item.priceFlag !== 1) {
+                                productIdArr.push(item.productId)
+                            }
+                        });
+                        setProductPrice(res.data, productIdArr.join(","), _self.userId, function () {
+                            _self.$forceUpdate();
+                        });
+                    }
+                    _self.categoryProducts = res.data
+                    setTimeout(function(){
+                        // 图片懒加载
+                        $("img[data-original]").lazyload();
+                    },500);
+                }
+            });
+        },
+        getMainProducts(){
             var _self = this;
             SupplierApi.GetShopProductMain(
                 {
@@ -121,21 +158,21 @@ var supplierHome = new Vue({
                             });
                             setProductPrice(res.data, productIdArr.join(","), _self.userId, function () {
                                 _self.$forceUpdate();
-                                setTimeout(function(){
-                                    // 图片懒加载
-                                    $("img[data-original]").lazyload();
-                                },500);
                             });
                         }
                         _self.mainProducts = res.data;
+                        setTimeout(function(){
+                            // 图片懒加载
+                            $("img[data-original]").lazyload();
+                        },500);
                     } else {
                         _self.$message.error(res.msg)
                     }
                 }
             );
         },
-        getProductLists: function(){
-            var _self = this;
+        getProductLists(){
+            const _self = this;
             SupplierApi.GetSearchQueryProductSupplier(
                 {
                     keyword: _self.params.keyword,
@@ -146,8 +183,7 @@ var supplierHome = new Vue({
                 },
                 function (res) {
                     if (res.code === 0 && res.data) {
-                        var result = JSON.parse(res.data);
-                        console.log('result',result)
+                        const result = JSON.parse(res.data);
                         _self.listRecord = result.total;
                         var resultData = setSearchProductList(result.items, _self.userId, function () {
                             _self.$forceUpdate();
@@ -166,7 +202,7 @@ var supplierHome = new Vue({
                 }
             );
         },
-        PromotionsFormat:function(promo){//促销活动类型数据处理
+        PromotionsFormat(promo){//促销活动类型数据处理
             if(promo!=null){
                 if(promo.type == 1 && promo.mode == 1){
                     return true
@@ -176,14 +212,14 @@ var supplierHome = new Vue({
             }
             return false
         },
-        keyupSearch: function(event) {
+        keyupSearch(event) {
             // 搜索输入框 按回车键搜索
             var keyCode = event.keyCode || event.which;
             if(keyCode === 13){
                 this.supplierSearch();
             }
         },
-        supplierSearch: function(){
+        supplierSearch(){
             if (this.params.keyword.length < 2) {
                 $.confirm({
                     useBootstrap: false,
@@ -212,32 +248,23 @@ var supplierHome = new Vue({
             location.href='/upgrade.html';
         }
     },
-    created: function () {
-        // this.params.id = getUrlParam("id") ? getUrlParam("id") * 1 : 0;
-        var paramsArr = window.location.pathname.split(".")[0].split("-");
+    created(){
+        const paramsArr = window.location.pathname.split(".")[0].split("-");
         this.params.id = this.cmSysParams.shopId = this.handleShopId =  paramsArr.length>=1 ? paramsArr[1]*1 : 0;
         this.cmSysParams.pageType = 14;
         this.cmSysParams.pageLabel = `供应商主页`;//设置统计数据标签
-        if(this.params.id !== 0) {
-            this.getShopInfo();
-            this.getBanners();
-        }
     },
     mounted: function () {
+        const _self = this;
+        const userInfo = localStorage.getItem('userInfo');
         if(this.params.id !== 0) {
+            this.getShopInfo();
             this.getMainProducts();
             this.getProductLists();
         }
-         var userInfo = localStorage.getItem('userInfo');
-            if(userInfo){
-                this.userId = JSON.parse(userInfo).userId;
-            }
-        var _self = this;
-        $('.supplierInfo').slide({
-            mainCell:".tabCon"
-            ,titCell:".tabTit span"
-            ,trigger: "click"
-        });
+        if(userInfo){
+            this.userId = JSON.parse(userInfo).userId;
+        }
         //上垃加载更多
         $(window).on('scroll', function(){
             var scrollTop = $(this).scrollTop();

+ 21 - 8
src/main/resources/templates/index.html

@@ -38,14 +38,27 @@
         <a class="swiper-button-prev" href="javascript:void(0)"></a>
         <a class="swiper-button-next" href="javascript:void(0)"></a>
     </div>
-    <div class="mNavBox h5Only clear">
-        <!--导航菜单-->
-        <a class="nav" href="/"><p>首页</p> </a>
-        <a th:each="menu: ${topMenuList}" class="nav" th:href="${menu.link}">
-            <img class="nav-icon" th:src="${menu.icon}" th:alt="${menu.name}">
-            <p th:text="${menu.name}"></p>
-        </a>
-    </div>
+    <template v-if="!isPC">
+        <div class="mNavBox h5Only clear">
+            <!--导航菜单-->
+            <div class="mNavBox-main">
+                <a class="nav active" href="/"><p>首页</p> </a>
+                <a th:each="menu: ${topMenuList}" class="nav" th:href="${menu.link}">
+                    <img class="nav-icon" th:src="${menu.icon}" th:alt="${menu.name}">
+                    <p th:text="${menu.name}"></p>
+                </a>
+            </div>
+            <div class="mNavBox-down" :class="dropScreenShow ? 'none' : ''" @click="showDropScreen"><i class="icon mIcon"></i></div>
+            <div class="mNavBox-dropdown" v-if="dropScreenShow">
+                <a class="drop-item" href="javascript:void(0)">全部分类</a>
+                <a class="drop-item active" href="/">首页</a>
+                <a th:each="menu: ${topMenuList}" class="drop-item" th:href="${menu.link}">
+                    <p th:text="${menu.name}"></p>
+                </a>
+            </div>
+        </div>
+        <div class="mNavBox-dropdown-more" v-if="dropScreenShow" @click="hideDropScreen"></div>
+    </template>
     <div class="quickOperation" v-if="quickoperaList.length > 0 && !isPC" v-cloak>
         <van-swipe class="my-swipe" :autoplay="false">
             <van-swipe-item v-for="(item, index) in quickoperaList" :key="item">

+ 41 - 11
src/main/resources/templates/supplier-center/components/disguise-banner.html

@@ -2,7 +2,7 @@
   <div class="head-top clear">
     <div class="form-row low">
       <span v-if="isPC">标题名称:</span>
-      <el-input v-model="bannerQuery.name"
+      <el-input v-model="bannerQuery.title"
                 class="state"
                 placeholder="请输入标题名称"
                 clearable
@@ -26,21 +26,43 @@
           highlight-current-row
           :header-cell-style="{background:'#E1E1E1',color:'#606266'}"
   >
-    <el-table-column label="标题" align="center" prop="name"></el-table-column>
-    <el-table-column label="链接" align="center" prop="number"></el-table-column>
+    <el-table-column label="轮播图" align="center" prop="image" width="120">
+      <template slot-scope="{ row }">
+        <el-popover v-if="row.image" placement="top-start" title="" width="400" trigger="hover">
+          <img :src="row.image" alt="" style="width: 400px; height: 120px" />
+          <img slot="reference" :src="row.image" alt="" style="width: 120px; height: 40px" />
+        </el-popover>
+        <span v-else>--</span>
+      </template>
+    </el-table-column>
+    <el-table-column label="标题" align="center" prop="title"></el-table-column>
+    <el-table-column label="链接" align="center" prop="link">
+      <template slot-scope="{row}">
+        <span class="tablie" >
+           <a :href="row.link" v-text="row.link"></a>
+        </span>
+      </template>
+    </el-table-column>
     <el-table-column label="排序" width="80" align="center">
       <template slot-scope="{ row }">
-        <el-input v-model="row.sort" maxlength="4" minlength="1" @blur="handleBannerSort(row)"></el-input>
+        <el-input
+                v-model="row.sort"
+                maxlength="4"
+                minlength="1"
+                @blur="handleBannerSort(row)"
+                style="text-align: center;">
+        </el-input>
       </template>
     </el-table-column>
-    <el-table-column label="说明" align="center" prop="text">
+    <el-table-column label="说明" align="center" prop="info">
       <template slot-scope="{row}">
-        <span>{{  row.text }}</span>
+        <span>{{  row.info }}</span>
       </template>
     </el-table-column>
-    <el-table-column label="创建时间" align="center" prop="time" width="100">
+    <el-table-column label="创建时间" align="center" prop="addTime" width="100">
       <template slot-scope="{row}">
-        <span>{{  row.time }}</span>
+        <span v-if="row.addTime">{{  row.addTime }}</span>
+        <span v-else>--</span>
       </template>
     </el-table-column>
     <el-table-column label="操作" align="center">
@@ -73,6 +95,9 @@
       <div class="modal-div">
         <span>标题 :</span> <input type="text" name="title" v-model="bannerForm.title" class="modal-input-common keyword_filter">
       </div>
+      <div class="modal-div">
+        <span>排序 :</span> <input type="text" name="sort" v-model="bannerForm.sort" class="modal-input-common keyword_filter">
+      </div>
       <div class="modal-div">
         <span> 链接 :</span>
         <input type="text" v-model="bannerForm.link" placeholder="例如:http://www.caimei365.com"class="modal-input-common keyword_filter" name="link">
@@ -81,17 +106,22 @@
         <span> 说明 :</span> <input type="text" v-model="bannerForm.info" class="modal-input-common keyword_filter" name="info">
       </div>
       <div class="upload-img">
-        <span class="red up">*</span><span class="up">图片:</span>
+        <div class="label">
+          <span class="red up">*</span>
+          <span class="up">图片:</span>
+        </div>
         <div class="upimg">
           <img class="center" :src="bannerForm.image" v-if="logoShow">
           <i class="icon mIcon add" v-if="iconflag"></i>
-          <input type="file" ref="images" class="add-pic"  id="uploadfile" accept="image/*" @change="uploadlogo"/>
+          <input type="file" ref="images" class="add-pic"  id="uploadfile" accept="image/*" @change="handleUploadlogo"/>
         </div>
         <div >
           <p class="Note">注:仅支持<span class="colorstyle">jpg、gif、jpeg、png、emp</span>,文件小于<span class="colorstyle">5M</span></p>
-          <div class="saveBtn" @click="submit" >保存</div>
         </div>
       </div>
+      <div class="saveBtn">
+        <el-button type="primary" size="mini" @click="handleSaveBanner">保存</el-button>
+      </div>
     </div>
   </div>
 </div>

+ 20 - 12
src/main/resources/templates/supplier-center/components/disguise-category.html

@@ -3,7 +3,7 @@
     <div class="form-row low">
       <span v-if="isPC">类别名称:</span>
       <el-input
-              v-model="categoryQuery.name"
+              v-model="categoryQuery.category"
               class="state"
               placeholder="请输入类别名称"
               clearable
@@ -15,9 +15,7 @@
       <el-button type="primary" @click="getCategoryList">查询</el-button>
       <el-button type="primary" @click="getCategoryList">一键排序</el-button>
       <a href="/supplier/category-edit.html">
-        <el-button type="primary">
-          添加类别
-        </el-button>
+        <el-button type="primary">添加类别</el-button>
       </a>
     </div>
   </div>
@@ -31,22 +29,32 @@
           highlight-current-row
           :header-cell-style="{background:'#E1E1E1',color:'#606266'}"
   >
-    <el-table-column label="类别名称" align="center" prop="name"></el-table-column>
-    <el-table-column label="商品数量" align="center" prop="number"></el-table-column>
-    <el-table-column label="排序" width="80" align="center">
+    <el-table-column label="类别名称" align="center" prop="category">
+      <template slot-scope="{row}">
+        <span>{{  row.category }}</span>
+      </template>
+    </el-table-column>
+    <el-table-column label="商品数量" align="center" prop="productNumber" width="100"></el-table-column>
+    <el-table-column label="排序" width="100" align="center">
       <template slot-scope="{ row }">
-        <el-input v-model="row.sort" maxlength="4" minlength="1" @blur="handleCategorySort(row)"></el-input>
+        <el-input
+                v-model="row.sort"
+                maxlength="4"
+                minlength="1"
+                @blur="handleCategorySort(row)"
+                style="text-align: center;">
+        </el-input>
       </template>
     </el-table-column>
-    <el-table-column label="创建时间" align="center" prop="time" width="100">
+    <el-table-column label="创建时间" align="center" prop="addTime">
       <template slot-scope="{row}">
-        <span>{{  row.time }}</span>
+        <span>{{  row.addTime }}</span>
       </template>
     </el-table-column>
     <el-table-column label="操作" align="center">
       <template slot-scope="{row}">
-          <el-button type="primary" style="margin: 5px;" size="mini" plain  @click="handleEditCategory">编辑</el-button>
-          <el-button type="primary" style="margin: 5px;" size="mini" plain  @click="handleDelCategory">删除</el-button>
+          <el-button type="primary" style="margin: 5px;" size="mini" plain  @click="handleEditCategory(row)">编辑</el-button>
+          <el-button type="primary" style="margin: 5px;" size="mini" plain  @click="handleDelCategory(row)">删除</el-button>
       </template>
     </el-table-column>
   </el-table>

+ 4 - 10
src/main/resources/templates/supplier-center/components/disguise-dialog.html

@@ -29,18 +29,12 @@
           @selection-change="handleSelectionChange"
   >
     <el-table-column type="selection" width="55" :selectable="selectable"></el-table-column>
-    <el-table-column label="供应商名称" prop="name" align="center"></el-table-column>
-    <el-table-column label="联系人" prop="linkMan" align="center"></el-table-column>
-    <el-table-column label="手机号" prop="contractMobile" align="center">
-      <template slot-scope="{ row }">
-        {{ row.contractMobile ? row.contractMobile : '---' }}
-      </template>
-    </el-table-column>
-    <el-table-column label="供应商状态" prop="status" align="center">
-      <template slot-scope="{ row }">
-        <el-tag v-if="row.status === 90" type="success" size="small">已上线</el-tag>
+    <el-table-column label="商品图片" align="center" prop="image" width="80">
+      <template slot-scope="{row}">
+        <img :src="row.image" :alt="row.name" style="width: 40px;height: 40px;">
       </template>
     </el-table-column>
+    <el-table-column label="商品名称" prop="name" align="center"></el-table-column>
   </el-table>
   <!-- 页码 -->
   <pagination

+ 14 - 20
src/main/resources/templates/supplier-center/shop/category-edit.html

@@ -2,7 +2,7 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网</title>
+    <title>采美365网-我的店铺-添加楼层</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/base/center.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/supplier-center/shop/category-edit.css(v=${version})}" rel="stylesheet" type="text/css">
@@ -26,33 +26,25 @@
             <div class="right">
                 <div class="disguise-content">
                     <el-form ref="dataForm" :rules="rules" :model="disguiseForm" label-position="right" label-width="100px">
-                        <el-form-item label="类别名称:" prop="name" :rules="rules.name">
-                            <el-input v-model="disguiseForm.name" placeholder="请输入类别名称"></el-input>
+                        <el-form-item label="类别名称:" prop="category" :rules="rules.category">
+                            <el-input v-model="disguiseForm.category" placeholder="请输入类别名称"  maxlength="10"></el-input>
                         </el-form-item>
                         <el-form-item label="类别排序:" prop="sort" :rules="rules.sort">
-                            <el-input v-model="disguiseForm.sort" placeholder="请输入类别排序"></el-input>
+                            <el-input v-model="disguiseForm.sort" placeholder="请输入类别排序" maxlength="3"></el-input>
                         </el-form-item>
                         <el-form-item label="商品信息:" prop="products" :rules="rules.products">
-                            <template v-if="disguiseForm.products && disguiseForm.products.length === 0">
-                                <el-button type="primary" autofocussize="mini" size="mini" icon="el-icon-plus" @click="dialogVisible = true">添加商品</el-button>
+                            <template>
+                                <el-button type="primary" autofocussize="mini" size="mini" icon="el-icon-plus" @click="handleDialogVisible">添加商品</el-button>
                                 <el-checkbox-group v-show="false" v-model="disguiseForm.products"></el-checkbox-group>
                             </template>
-                            <template v-else>
+                            <template v-if="disguiseForm.products && disguiseForm.products.length > 0">
                                 <el-table :data="disguiseForm.products" border width="1000" height="500">
-                                    <el-table-column property="mainImage" label="商品图片" align="center" width="80">
+                                    <el-table-column property="image" label="商品图片" align="center" width="80">
                                         <template slot-scope="{ row }">
-                                            <el-popover
-                                                    placement="top-start"
-                                                    title=""
-                                                    width="180"
-                                                    trigger="hover"
-                                            >
-                                                <img :src="row.mainImage" alt="" style="width:150px;height:150px;">
-                                                <img slot="reference" :src="row.mainImage" alt="" style="width:30px;height:30px;">
-                                            </el-popover>
+                                            <img :src="row.image" alt="" style="width:80px;height:80px;" />
                                         </template>
                                     </el-table-column>
-                                    <el-table-column prop="productName" label="商品名称" align="center" width="300"></el-table-column>
+                                    <el-table-column prop="name" label="商品名称" align="center" width="300"></el-table-column>
                                     <el-table-column label="操作" align="center">
                                         <template slot-scope="scope">
                                             <el-button type="text" @click="handleDeletePros(scope.$index)">删除</el-button>
@@ -62,8 +54,10 @@
                             </template>
                         </el-form-item>
                         <el-form-item style="margin-bottom: 10px;">
-                            <el-button type="primary" style="margin: 5px;" plain  @click="">返回</el-button>
-                            <el-button type="primary" style="margin: 5px;" @click="">确定</el-button>
+                            <a href="/supplier/disguise.html">
+                                <el-button type="primary" style="margin: 5px;" plain>返回</el-button>
+                            </a>
+                            <el-button type="primary" style="margin: 5px;" @click="handleSavsDisguise">确定</el-button>
                         </el-form-item>
                     </el-form>
                 </div>

+ 207 - 121
src/main/resources/templates/supplier/index.html

@@ -47,143 +47,229 @@
 
     <div class="supplierInfo">
         <div class="tabTit">
-            <span class="on">商品展示</span>
-            <span>公司介绍</span>
+            <span @click="handleTabClick(1)" :class="handleTabIndex === 1 ? 'on' : ''">商品展示</span>
+            <span @click="handleTabClick(2)" :class="handleTabIndex === 2 ? 'on' : ''">公司介绍</span>
             <a v-if="!isPC" class="showSearch" href="javascript:void(0);">商铺内搜索</a>
         </div>
+        <div class="shop-tabsItem clear" v-if="handleTabIndex === 1">
+            <a href="javascript:void(0)"
+               class="tabs-list"
+               :class="choiceIndex === '' ? 'active' : ''"
+               @click="handleChangeAll">全部</a>
+            <a class="tabs-list"
+               :class="choiceIndex === index ? 'active' : ''"
+               v-for="(category,index) in shopCategory"
+               :key="index"
+               href="javascript:void(0)"
+               :title="category.category"
+               @click="handleCategory(category, index)"
+               v-html="category.category">
+            </a>
+        </div>
         <div class="tabCon">
-            <div class="item productBox">
-                <template v-for="(floor,index) in floorData">
-                    <div v-if="(floor.type === 1 && floor.productList.length > 0) || floor.type === 2" class="part">
-                        <div class="title" v-html="floor.title" :id="floor.type === 2 ? 'supProduct' : ''"></div>
-                        <!--主推商品列表-->
-                        <ul class="productList clear mfw" v-if="floor.productList.length > 0">
-                            <li class="productItem " v-for="p in floor.productList">
-                                <a class="image" :href="'/product-'+p.productId+'.html'">
-                                    <div class="page_main_type" v-if="p.productType == 2">医疗器械</div>
-                                    <img src="/img/base/placeholder.png" :data-original="p.image" :alt="p.name">
-                                    <p class="name" v-html="addhtml + p.name" v-if="p.beautyActFlag==1"></p>
-                                    <p class="name" v-html="p.name" v-else></p>
-                                    <div class="price">
-                                        <!--已登录-->
-                                        <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID > 0">
-                                            <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
-                                            <div class="price_text_tag">
-                                                <p class="couponTag" v-if="p.couponsLogo">优惠券</p>
-                                                <template v-if="p.svipProductFlag === 1">
-                                                    <div class="svip-tag">
-                                                        <div class="svip-icon">SVIP</div>
-                                                        <div class="svip-price" v-if="showVipPriceTag(p)">
-                                                            <span>¥</span><span v-html="p.svipPriceTag"></span>
-                                                        </div>
+            <template v-if="handleTabIndex === 1">
+                <template v-if="!isShopAll">
+                    <ul class="productList clear mfw" v-if="categoryProducts.length > 0">
+                        <li class="productItem " v-for="p in categoryProducts">
+                            <a class="image" :href="'/product-'+p.productId+'.html'" target="_blank">
+                                <div class="page_main_type" v-if="p.productType == 2">医疗器械</div>
+                                <img :src="p.image" :alt="p.name">
+                                <p class="name" v-html="addhtml + p.name" v-if="p.beautyActFlag==1"></p>
+                                <p class="name" v-html="p.name" v-else></p>
+                                <div class="price">
+                                    <!--已登录-->
+                                    <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID > 0">
+                                        <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
+                                        <div class="price_text_tag">
+                                            <p class="couponTag" v-if="p.couponsLogo">优惠券</p>
+                                            <template v-if="p.svipProductFlag === 1">
+                                                <div class="svip-tag">
+                                                    <div class="svip-icon">SVIP</div>
+                                                    <div class="svip-price" v-if="showVipPriceTag(p)">
+                                                        <span>¥</span><span v-html="p.svipPriceTag"></span>
                                                     </div>
-                                                </template>
-                                                <template v-else>
-                                                    <p class="listTag" v-if="p.actStatus==1">
-                                                        {{p.promotions.name}}
-                                                        <template v-if="GLOBAL_USER_IDENTITY === 2 || (p.priceFlag === 0 && GLOBAL_USER_IDENTITY === 4) || (GLOBAL_USER_IDENTITY === 3 && p.shopId === GLOBAL_SHOP_ID) || GLOBAL_VIP_FLAG === 1">
-                                                            <span v-if="p.priceFlag != 1 && PromotionsFormat(p.promotions)">:¥{{p.price | NumFormat}}</span>
-                                                        </template>
-                                                    </p>
-                                                </template>
-                                            </div>
-                                            <div class="main_price_unde" v-if="p.priceFlag == 1">¥价格未公开</div>
-                                            <!--机构价仅会员可见 && 用户是普通机构-->
-                                            <div class="main_price_unde" v-else-if="p.priceFlag==2 && GLOBAL_USER_IDENTITY === 4 && GLOBAL_VIP_FLAG!=1">¥会员可见</div>
-                                            <!--仅医美机构可见-->
-                                            <div class="main_price_unde" v-else-if="p.priceFlag==3 && (GLOBAL_CLUB_TYPE !=1)">
-                                                ¥仅医美机构可见
-                                            </div>
-                                            <!--机构价格-->
-                                            <template v-else-if="GLOBAL_USER_IDENTITY === 2 || (p.priceFlag === 0 && GLOBAL_USER_IDENTITY === 4) || (GLOBAL_USER_IDENTITY === 3 && p.shopId === GLOBAL_SHOP_ID) || GLOBAL_VIP_FLAG === 1">
-                                                <div class="main_price_show" :class="{none: PromotionsFormat(p.promotions) || (p.svipProductFlag === 1 && showVipPriceTag(p))}">
-                                                    ¥{{ (PromotionsFormat(p.promotions) || p.svipProductFlag == 1 ? p.originalPrice : p.price ) | NumFormat }}
                                                 </div>
                                             </template>
-                                            <!--供应商除自己的商品外,也显示价格等级-->
-                                            <div class="price_grade" v-else><span class="bold">¥</span><i :class="'icon mIcon i'+p.priceGrade"></i></div>
+                                            <template v-else>
+                                                <p class="listTag" v-if="p.actStatus==1">
+                                                    {{p.promotions.name}}
+                                                    <template v-if="GLOBAL_USER_IDENTITY === 2 || (p.priceFlag === 0 && GLOBAL_USER_IDENTITY === 4) || (GLOBAL_USER_IDENTITY === 3 && p.shopId === GLOBAL_SHOP_ID) || GLOBAL_VIP_FLAG === 1">
+                                                        <span v-if="p.priceFlag != 1 && PromotionsFormat(p.promotions)">:¥{{p.price | NumFormat}}</span>
+                                                    </template>
+                                                </p>
+                                            </template>
+                                        </div>
+                                        <div class="main_price_unde" v-if="p.priceFlag == 1">¥价格未公开</div>
+                                        <!--机构价仅会员可见 && 用户是普通机构-->
+                                        <div class="main_price_unde" v-else-if="p.priceFlag==2 && GLOBAL_USER_IDENTITY === 4 && GLOBAL_VIP_FLAG!=1">¥会员可见</div>
+                                        <!--仅医美机构可见-->
+                                        <div class="main_price_unde" v-else-if="p.priceFlag==3 && (GLOBAL_CLUB_TYPE !=1)">
+                                            ¥仅医美机构可见
+                                        </div>
+                                        <!--机构价格-->
+                                        <template v-else-if="GLOBAL_USER_IDENTITY === 2 || (p.priceFlag === 0 && GLOBAL_USER_IDENTITY === 4) || (GLOBAL_USER_IDENTITY === 3 && p.shopId === GLOBAL_SHOP_ID) || GLOBAL_VIP_FLAG === 1">
+                                            <div class="main_price_show" :class="{none: PromotionsFormat(p.promotions) || (p.svipProductFlag === 1 && showVipPriceTag(p))}">
+                                                ¥{{ (PromotionsFormat(p.promotions) || p.svipProductFlag == 1 ? p.originalPrice : p.price ) | NumFormat }}
+                                            </div>
                                         </template>
-                                        <!--未登录-->
-                                        <template v-else>
-                                            <div class="price_text_tag ">
-                                                <p class="couponTag" v-if="p.couponsLogo">优惠券</p>
-                                                <template v-if="p.svipProductFlag === 1">
-                                                    <div class="svip-tag">
-                                                        <div class="svip-icon">SVIP</div>
+                                        <!--供应商除自己的商品外,也显示价格等级-->
+                                        <div class="price_grade" v-else><span class="bold">¥</span><i :class="'icon mIcon i'+p.priceGrade"></i></div>
+                                    </template>
+                                    <!--未登录-->
+                                    <template v-else>
+                                        <div class="price_text_tag ">
+                                            <p class="couponTag" v-if="p.couponsLogo">优惠券</p>
+                                            <template v-if="p.svipProductFlag === 1">
+                                                <div class="svip-tag">
+                                                    <div class="svip-icon">SVIP</div>
+                                                </div>
+                                            </template>
+                                            <template v-else>
+                                                <p class="listTag" v-if="p.actStatus==1">{{p.promotions.name}}</p>
+                                            </template>
+                                        </div>
+                                        <div class="price_grade "><span class="bold">¥</span><i :class="'icon mIcon i'+p.priceGrade"></i></div>
+                                    </template>
+                                </div>
+                            </a>
+                        </li>
+                    </ul>
+                </template>
+                <div class="item productBox" v-else>
+                    <template v-for="(floor,index) in floorData">
+                        <div v-if="(floor.type === 1 && floor.productList.length > 0) || floor.type === 2" class="part">
+                            <div class="title" v-html="floor.title" :id="floor.type === 2 ? 'supProduct' : ''"></div>
+                            <!--主推商品列表-->
+                            <ul class="productList clear mfw" v-if="floor.productList.length > 0">
+                                <li class="productItem " v-for="p in floor.productList">
+                                    <a class="image" :href="'/product-'+p.productId+'.html'" target="_blank">
+                                        <div class="page_main_type" v-if="p.productType == 2">医疗器械</div>
+                                        <img src="/img/base/placeholder.png" :data-original="p.image" :alt="p.name">
+                                        <p class="name" v-html="addhtml + p.name" v-if="p.beautyActFlag==1"></p>
+                                        <p class="name" v-html="p.name" v-else></p>
+                                        <div class="price">
+                                            <!--已登录-->
+                                            <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID > 0">
+                                                <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
+                                                <div class="price_text_tag">
+                                                    <p class="couponTag" v-if="p.couponsLogo">优惠券</p>
+                                                    <template v-if="p.svipProductFlag === 1">
+                                                        <div class="svip-tag">
+                                                            <div class="svip-icon">SVIP</div>
+                                                            <div class="svip-price" v-if="showVipPriceTag(p)">
+                                                                <span>¥</span><span v-html="p.svipPriceTag"></span>
+                                                            </div>
+                                                        </div>
+                                                    </template>
+                                                    <template v-else>
+                                                        <p class="listTag" v-if="p.actStatus==1">
+                                                            {{p.promotions.name}}
+                                                            <template v-if="GLOBAL_USER_IDENTITY === 2 || (p.priceFlag === 0 && GLOBAL_USER_IDENTITY === 4) || (GLOBAL_USER_IDENTITY === 3 && p.shopId === GLOBAL_SHOP_ID) || GLOBAL_VIP_FLAG === 1">
+                                                                <span v-if="p.priceFlag != 1 && PromotionsFormat(p.promotions)">:¥{{p.price | NumFormat}}</span>
+                                                            </template>
+                                                        </p>
+                                                    </template>
+                                                </div>
+                                                <div class="main_price_unde" v-if="p.priceFlag == 1">¥价格未公开</div>
+                                                <!--机构价仅会员可见 && 用户是普通机构-->
+                                                <div class="main_price_unde" v-else-if="p.priceFlag==2 && GLOBAL_USER_IDENTITY === 4 && GLOBAL_VIP_FLAG!=1">¥会员可见</div>
+                                                <!--仅医美机构可见-->
+                                                <div class="main_price_unde" v-else-if="p.priceFlag==3 && (GLOBAL_CLUB_TYPE !=1)">
+                                                    ¥仅医美机构可见
+                                                </div>
+                                                <!--机构价格-->
+                                                <template v-else-if="GLOBAL_USER_IDENTITY === 2 || (p.priceFlag === 0 && GLOBAL_USER_IDENTITY === 4) || (GLOBAL_USER_IDENTITY === 3 && p.shopId === GLOBAL_SHOP_ID) || GLOBAL_VIP_FLAG === 1">
+                                                    <div class="main_price_show" :class="{none: PromotionsFormat(p.promotions) || (p.svipProductFlag === 1 && showVipPriceTag(p))}">
+                                                        ¥{{ (PromotionsFormat(p.promotions) || p.svipProductFlag == 1 ? p.originalPrice : p.price ) | NumFormat }}
                                                     </div>
                                                 </template>
-                                                <template v-else>
-                                                    <p class="listTag" v-if="p.actStatus==1">{{p.promotions.name}}</p>
-                                                </template>
-                                            </div>
-                                            <div class="price_grade "><span class="bold">¥</span><i :class="'icon mIcon i'+p.priceGrade"></i></div>
-                                        </template>
-                                    </div>
-                                </a>
-                            </li>
-                        </ul>
-                        <div v-else class="empty">
-                            <img src="/img/order/icon-dianpu.svg">
-                            <div class="msg">
-                                <p>该供应商暂未发布商品,去<a href="/">商城</a>,逛逛吧~</p>
+                                                <!--供应商除自己的商品外,也显示价格等级-->
+                                                <div class="price_grade" v-else><span class="bold">¥</span><i :class="'icon mIcon i'+p.priceGrade"></i></div>
+                                            </template>
+                                            <!--未登录-->
+                                            <template v-else>
+                                                <div class="price_text_tag ">
+                                                    <p class="couponTag" v-if="p.couponsLogo">优惠券</p>
+                                                    <template v-if="p.svipProductFlag === 1">
+                                                        <div class="svip-tag">
+                                                            <div class="svip-icon">SVIP</div>
+                                                        </div>
+                                                    </template>
+                                                    <template v-else>
+                                                        <p class="listTag" v-if="p.actStatus==1">{{p.promotions.name}}</p>
+                                                    </template>
+                                                </div>
+                                                <div class="price_grade "><span class="bold">¥</span><i :class="'icon mIcon i'+p.priceGrade"></i></div>
+                                            </template>
+                                        </div>
+                                    </a>
+                                </li>
+                            </ul>
+                            <div v-else class="empty">
+                                <img src="/img/order/icon-dianpu.svg">
+                                <div class="msg">
+                                    <p>该供应商暂未发布商品,去<a href="/">商城</a>,逛逛吧~</p>
+                                </div>
                             </div>
                         </div>
-                    </div>
-                </template>
-            </div>
-            <div class="item infoBox">
-                <div class="part">
-                    <div class="title">公司基本信息</div>
-                    <p><span class="l">公司</span>:<span th:text="${supplier.name}"></span></p>
-                    <p><span class="l">满意度</span>:<span><i v-for="i in 5" class="icon mIcon heart"></i></span></p>
-                    <p th:if="not${#strings.isEmpty(supplier.businessScopeArr)}"><span class="l">经营范围</span>:<span><em class="tag" th:each="bus: ${supplier.businessScopeArr}" th:text="${bus}"></em></span></p>
-                </div>
-                <div class="part" >
-                    <div class="title">公司介绍</div>
-                    <div class="cont" th:utext="${supplier.info}" th:if="not${#strings.isEmpty(supplier.info)}"></div>
-                    <div class="cont" th:if="${#strings.isEmpty(supplier.info)}">暂无</div>
+                    </template>
                 </div>
-                <div class="part">
-                    <div class="title">主打系列产品说明</div>
-                    <div class="cont" th:utext="${supplier.productDesc}" th:if="not${#strings.isEmpty(supplier.productDesc)}"></div>
-                    <div class="cont" th:if="${#strings.isEmpty(supplier.productDesc)}">暂无</div>
-                </div>
-                <div class="part">
-                    <div class="title">营业执照</div>
-                    <div class="photo">
-                        <a th:href="${supplier.businessLicense}" target="_blank" th:if="not${#strings.isEmpty(supplier.businessLicense)}">
-                            <img th:src="${supplier.businessLicense}">
-                        </a>
-                        <div class="cont" th:if="${#strings.isEmpty(supplier.businessLicense)}">暂无</div>
+            </template>
+            <template v-if="handleTabIndex === 2">
+                <div class="item infoBox">
+                    <div class="part">
+                        <div class="title">公司基本信息</div>
+                        <p><span class="l">公司</span>:<span th:text="${supplier.name}"></span></p>
+                        <p><span class="l">满意度</span>:<span><i v-for="i in 5" class="icon mIcon heart"></i></span></p>
+                        <p th:if="not${#strings.isEmpty(supplier.businessScopeArr)}"><span class="l">经营范围</span>:<span><em class="tag" th:each="bus: ${supplier.businessScopeArr}" th:text="${bus}"></em></span></p>
                     </div>
-                </div>
-                <div class="part" >
-                    <div class="title">公司资质</div>
-                    <div class="photo">
-                        <a th:href="${supplier.medicalPracticeLicense}" target="_blank" th:if="not${#strings.isEmpty(supplier.medicalPracticeLicense)}">
-                            <img th:src="${supplier.medicalPracticeLicense}">
-                        </a>
-                        <a th:href="${supplier.medicalPracticeLicenseImg1}" target="_blank" th:if="not${#strings.isEmpty(supplier.medicalPracticeLicenseImg1)}">
-                            <img th:src="${supplier.medicalPracticeLicenseImg1}">
-                        </a>
-                        <a th:href="${supplier.medicalPracticeLicenseImg2}" target="_blank" th:if="not${#strings.isEmpty(supplier.medicalPracticeLicenseImg2)}">
-                            <img th:src="${supplier.medicalPracticeLicenseImg2}">
-                        </a>
-                        <a th:href="${supplier.medicalPracticeLicenseImg3}" target="_blank" th:if="not${#strings.isEmpty(supplier.medicalPracticeLicenseImg3)}">
-                            <img th:src="${supplier.medicalPracticeLicenseImg3}">
-                        </a>
+                    <div class="part" >
+                        <div class="title">公司介绍</div>
+                        <div class="cont" th:utext="${supplier.info}" th:if="not${#strings.isEmpty(supplier.info)}"></div>
+                        <div class="cont" th:if="${#strings.isEmpty(supplier.info)}">暂无</div>
                     </div>
-                </div>
-                <div class="part" >
-                    <div class="title">授权牌照</div>
-                    <div class="photo">
-                        <a th:href="${supplier.license}" target="_blank" th:if="not${#strings.isEmpty(supplier.license)}">
-                            <img th:src="${supplier.license}">
-                        </a>
-                        <div class="cont" th:if="${#strings.isEmpty(supplier.license)}">暂无</div>
+                    <div class="part">
+                        <div class="title">主打系列产品说明</div>
+                        <div class="cont" th:utext="${supplier.productDesc}" th:if="not${#strings.isEmpty(supplier.productDesc)}"></div>
+                        <div class="cont" th:if="${#strings.isEmpty(supplier.productDesc)}">暂无</div>
+                    </div>
+                    <div class="part">
+                        <div class="title">营业执照</div>
+                        <div class="photo">
+                            <a th:href="${supplier.businessLicense}" target="_blank" th:if="not${#strings.isEmpty(supplier.businessLicense)}">
+                                <img th:src="${supplier.businessLicense}">
+                            </a>
+                            <div class="cont" th:if="${#strings.isEmpty(supplier.businessLicense)}">暂无</div>
+                        </div>
+                    </div>
+                    <div class="part" >
+                        <div class="title">公司资质</div>
+                        <div class="photo">
+                            <a th:href="${supplier.medicalPracticeLicense}" target="_blank" th:if="not${#strings.isEmpty(supplier.medicalPracticeLicense)}">
+                                <img th:src="${supplier.medicalPracticeLicense}">
+                            </a>
+                            <a th:href="${supplier.medicalPracticeLicenseImg1}" target="_blank" th:if="not${#strings.isEmpty(supplier.medicalPracticeLicenseImg1)}">
+                                <img th:src="${supplier.medicalPracticeLicenseImg1}">
+                            </a>
+                            <a th:href="${supplier.medicalPracticeLicenseImg2}" target="_blank" th:if="not${#strings.isEmpty(supplier.medicalPracticeLicenseImg2)}">
+                                <img th:src="${supplier.medicalPracticeLicenseImg2}">
+                            </a>
+                            <a th:href="${supplier.medicalPracticeLicenseImg3}" target="_blank" th:if="not${#strings.isEmpty(supplier.medicalPracticeLicenseImg3)}">
+                                <img th:src="${supplier.medicalPracticeLicenseImg3}">
+                            </a>
+                        </div>
+                    </div>
+                    <div class="part" >
+                        <div class="title">授权牌照</div>
+                        <div class="photo">
+                            <a th:href="${supplier.license}" target="_blank" th:if="not${#strings.isEmpty(supplier.license)}">
+                                <img th:src="${supplier.license}">
+                            </a>
+                            <div class="cont" th:if="${#strings.isEmpty(supplier.license)}">暂无</div>
+                        </div>
                     </div>
                 </div>
-            </div>
+            </template>
         </div>
     </div>
     <!--Ross 弹窗-->