zhengjinyi преди 4 години
родител
ревизия
c9e8310a1b
променени са 26 файла, в които са добавени 970 реда и са изтрити 135 реда
  1. 18 1
      src/main/resources/static/css/account/login.css
  2. 15 5
      src/main/resources/static/css/account/register.css
  3. 1 1
      src/main/resources/static/css/base/form.css
  4. 88 47
      src/main/resources/static/js/account/login.js
  5. 22 0
      src/main/resources/static/js/account/register.js
  6. 1 1
      src/main/resources/static/js/base.js
  7. 98 0
      src/main/resources/static/js/common/ajax.service.js
  8. 13 0
      src/main/resources/static/js/common/serviceapi/club.service.js
  9. 21 0
      src/main/resources/static/js/common/serviceapi/order.service.js
  10. 49 0
      src/main/resources/static/js/common/serviceapi/pay.service.js
  11. 65 0
      src/main/resources/static/js/common/serviceapi/second.service.js
  12. 160 0
      src/main/resources/static/js/common/serviceapi/supplier.service.js
  13. 67 0
      src/main/resources/static/js/common/serviceapi/user.service.js
  14. 269 0
      src/main/resources/static/js/common/serviceapi/utils.service.js
  15. 1 0
      src/main/resources/static/lib/layer/layer.min.js
  16. 1 0
      src/main/resources/static/lib/layer/mobile/layer.js
  17. 0 0
      src/main/resources/static/lib/layer/mobile/need/layer.css
  18. BIN
      src/main/resources/static/lib/layer/theme/default/icon-ext.png
  19. BIN
      src/main/resources/static/lib/layer/theme/default/icon.png
  20. 0 0
      src/main/resources/static/lib/layer/theme/default/layer.css
  21. BIN
      src/main/resources/static/lib/layer/theme/default/loading-0.gif
  22. BIN
      src/main/resources/static/lib/layer/theme/default/loading-1.gif
  23. BIN
      src/main/resources/static/lib/layer/theme/default/loading-2.gif
  24. 1 0
      src/main/resources/templates/account/login.html
  25. 78 80
      src/main/resources/templates/account/register.html
  26. 2 0
      src/main/resources/templates/components/foot-link.html

+ 18 - 1
src/main/resources/static/css/account/login.css

@@ -30,7 +30,24 @@ footer .footTop{display:none;}
 .loginForm .showPwd{position:absolute;right:22px;top:16px;width:22px;height:16px;cursor:pointer}
 .loginForm .showPwd:before{width:22px;height:20px;background-position:-240px -299px}
 .loginForm .showPwd.on:before{width:22px;height:20px;background-position:-205px -299px}
-
+#qrCodeWrap .model{
+        position: absolute;
+        width: 200px;
+        height: 200px;
+        top: 15px;
+        left: 98px;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        background: rgba(255,255,255,1);
+        color: #999;
+        z-index: 99999;
+        cursor: pointer;
+        border: 1px solid #EBEBEB;
+}
+#qrCodeWrap .model .refresh{width: 21px;height: 21px;display: block;margin: 0 auto;margin-bottom: 3px;}
+#qrCodeWrap .model  .refresh-div{width: 100px;height: 64px;display: block;}
+#qrCodeWrap .model  .refresh-div p{text-align: center;font-size: 14px;line-height: 20px;}
 
 
 }

+ 15 - 5
src/main/resources/static/css/account/register.css

@@ -6,13 +6,14 @@ li{list-style:none}
 @media screen and (min-width:768px){
 body{background: #FFF url(/img/account/register.png) no-repeat center 84px;background-attachment: fixed;}
 footer .footTop{display:none;}
+.registerClub{padding: 20px 0;}
 .selectAccount{width:1184px;height:558px;text-align:center;margin:0 auto;}
 .selectAccount .title{height:42px;font-size:32px;line-height:42px;font-weight:bold;color:#22272e;padding-top:102px}
 .selectAccount .cont{margin-top:44px}
 .selectAccount .cont span{display:inline-block;width:168px;margin:0 55px;line-height:42px;color:#3b77ff;font-size:24px;cursor:pointer}
 .selectAccount .cont img{display:inline-block;width:168px;height:168px;background-color:#c2d8fa;border-radius:84px}
 
-.signAccount{width:498px;margin:0 auto}
+.signAccount{width:498px;margin:0 auto;min-height: 900px;}
 .signAccount .title{height:42px;line-height:42px;font-weight:bold;font-size:32px;color:#22272e;text-align:center;padding:30px}
 .signAccount .advisory{height:38px;position:relative;display:inline-block;margin-bottom:20px;cursor:pointer;}
 .signAccount .advisory>.icon{height:28px;line-height:28px;font-size:16px;color:#1890f9;}
@@ -22,7 +23,7 @@ footer .footTop{display:none;}
 .advisoryInfo .info{margin-bottom:15px;color:#1890f9;font-size:14px}
 .advisoryInfo .btn{display:block;width:232px;height:50px;line-height:50px;margin:0 auto;font-size:18px;background-color:#ffe6dc;border-radius:2px;border:solid 1px #e15616;color:#e15616}
 .signAccount .advisory:hover .advisoryInfo{display:block;transition:all .5s}
-.supplierConfirm .cont{width:880px;height:550px;box-sizing:border-box;background:#fff;padding:46px;border-radius:4px;color:#333;font-size:16px;box-shadow:0 10px 20px 0 rgba(0,0,0,0.16)}
+.supplierConfirm .cont{width:880px;height:550px;position: absolute;top: 0;left: 0;right: 0;bottom: 0;margin: auto; box-sizing:border-box;background:#fff;padding:46px;border-radius:4px;color:#333;font-size:16px;box-shadow:0 10px 20px 0 rgba(0,0,0,0.16)}
 .supplierConfirm .cont h3{text-align:center;font-size:24px}
 .supplierConfirm .cont p:first-of-type{color:#E36125;margin-top:30px}
 .supplierConfirm .cont p:nth-of-type(2){color:#666;margin:54px 0 36px 0}
@@ -35,7 +36,8 @@ footer .footTop{display:none;}
 .formLine .business{height:auto;position:relative}
 .formLine .business input[type="text"]{width:388px;display:block}
 .formLine .business a{position:absolute;right:0;bottom:0;width:92px;height:34px;line-height:34px;font-size:14px;color:#e15616;background-color:#ffe6dc;border-radius:2px;border:solid 1px #e15616;text-align:center}
-
+.subLine-p{text-align: center;cursor: pointer;text-decoration: underline;color: #2D93CA;margin: 20px 0;}
+.supplierConfirm{width: 100%;height: 100%;position: fixed;top:0;left:0;z-index: 999;background: rgba(0,0,0,.3);}
 
 
 }
@@ -46,12 +48,16 @@ footer .footTop{display:none;}
 @media screen and (max-width:768px){
 body{width:100%;height:100%;background:#FFF url(/img/account/register.png) no-repeat center bottom;background-size:100% auto;background-attachment: fixed;}
 footer{display:none}
+.registerClub{padding: 20px 0;}
+.registerShop{padding: 20px 0;}
 .selectAccount{width:100%;height:90vh;text-align:center;}
 .selectAccount .title{height:6vw;font-size:4.2vw;font-weight:bold;line-height:6vw;color:#22272e;padding-top:36vw}
 .selectAccount .cont{margin-top:10vw;}
 .selectAccount .cont span{display:inline-block;width:24.8vw;margin:0 6.7vw;line-height:4.6vw;color:#3b77ff;font-size:3.4vw;cursor:pointer}
 .selectAccount .cont img{display:inline-block;width:24.8vw;height:24.8vw;background-color:#c2d8fa;border-radius:12.4vw}
 .signAccount{width:100%;min-height:90vh;font-size:3.4vw;color:#627386;}
+.signAccount .advisory>.mIcon{height:5.6vw;line-height:5.6vw;font-size:1.6vw;color:#1890f9;display: block;position: absolute;right: 4vw;}
+.signAccount .advisory>.mIcon:before{width:5.6vw;height:5.6vw;background-position:-18.8vw -29.8vw;}
 .signAccount .title{height:6vw;line-height:6vw;font-weight:bold;font-size:4.2vw;color:#22272e;text-align:center;padding:5.2vw 0}
 .registerShop .tit{color:#22272e;font-size:3.7vw;font-weight:normal;margin:3vw 0}
 .signAccount form{width:93.4vw;margin:0 auto;}
@@ -67,8 +73,12 @@ footer{display:none}
 .formLine .business {position: relative;}
 .formLine .business input[type="text"]{width:69.4vw;display:block}
 .formLine .business a{position:absolute;right:0;bottom:0;width:21.4vw;height:11.2vw;line-height:11.2vw;color:#e15616;background-color:#ffe6dc;border-radius:2px;border:solid 1px #e15616;text-align:center}
-/*.advisory{display: none;}*/
-.advisoryInfo{box-sizing:border-box;width:74.7vw;background:#fff;box-shadow:0 10px 20px 0 rgba(0,0,0,0.16);padding:6.2vw;border-radius:1vw}
+.advisory .mask{display: none;width: 100%;height: 100%;position: fixed;top: 0;left: 0;background-color: rgba(0,0,0,.5);z-index: 99;}
+.advisory .mask.active{display: block;}
+.advisoryInfo.active{display: block;}
+.advisoryInfo .icon-close{position:absolute;top:0;right: 0; padding: 1vw;width: 6.4vw;height: 6.4vw;text-align: center;}
+.advisoryInfo .icon-close:before {content: '\2715';font-size: 4.5vw;font-weight: bold;}
+.advisoryInfo{z-index: 999;box-sizing:border-box;width:74.7vw;background:#fff;box-shadow:0 10px 20px 0 rgba(0,0,0,0.16);padding:6.2vw;border-radius:1vw;display: none;position: absolute;left: 50%;top: 50%;transform: translate(-50%,-50%);}
 .advisoryInfo form{width:100%}
 .advisoryInfo .formLine p{line-height:8vw}
 .advisoryInfo .info{margin-bottom:3vw;color:#1890f9;font-size:3.1vw}

+ 1 - 1
src/main/resources/static/css/base/form.css

@@ -69,7 +69,7 @@
 .subLine{text-align:center;font-size:3.1vw;padding-top:5vw;}
 .subLine p input{margin-right:1vw;}
 .subLine p a{color:#1890f9}
-.subLine .btn{display:block;margin:5vw auto;width:100%;height:11.2vw;line-height:11.2vw;background-color:#e15616;border-radius:2px;text-align:center;font-size:18px;color:#FFF}
+.subLine .btn{display:block;margin:5vw auto;width:100%;height:11.2vw;line-height:11.2vw;background-color:#e15616;border-radius:2px;text-align:center;font-size:1.8vw;color:#FFF}
 .formLine .address{text-align:justify;line-height:0}
 .formLine .diyBox{width:34vw;height:11.2vw;line-height:11.2vw;margin-right: 1.5vw;box-sizing:border-box;text-align:center;display:inline-block}
 .formLine .diyBox.second{width:20vw;}

+ 88 - 47
src/main/resources/static/js/account/login.js

@@ -1,6 +1,7 @@
 var loginPage = new Vue({
     el: "#loginPage",
     data: {
+        maxtime:60,
         loginLoading: false,
         qrCodeLogin: false,
         loginAccount: '',
@@ -28,22 +29,70 @@ var loginPage = new Vue({
 
     },
     methods: {
-        toQrCodeLogin: function(){
+        toQrCodeLogin: function(){//切换微信登录二维码
+            var _self = this;
+            var timeClock = null;
             this.qrCodeLogin = true;
-            $.get(spiServer + '/user/toWechatLogin').done(function(res){
-                var obj = new WxLogin({
-                    self_redirect: true,
-                    id: "qrCodeWrap",
-                    appid: res.data.AppId,
-                    scope: 'snsapi_login',
-                    redirect_uri: res.data.redirect_uri,
-                    state: res.data.state,
-                    style: "black",
-                    href: "https://www-b.caimei365.com/web/login/css/login.css"
+            UserApi.ToWechatLogin({},function(response){
+                var wxLogin = new WxLogin({
+                        self_redirect: true,
+                        id: "qrCodeWrap",
+                        appid: response.data.AppId,
+                        scope: 'snsapi_login',
+                        redirect_uri: response.data.redirect_uri,
+                        state: response.data.state,
+                        style: "black",
+                        href: "https://www-b.caimei365.com/web/login/css/login.css"
                 });
-            }).fail(function(err){
-                console.log(err);
-                alertInfo('网络连接超时,请稍后重试!');
+                timeClock = setInterval(function(){
+                    _self.maxtime--;
+                    if (_self.maxtime == 0) {
+                        clearInterval(timeClock);
+                    };
+                },1000);
+                _self.getWrchatStatusData({uuid:response.data.state})
+            });
+        },
+        getWrchatStatusData:function(params){//轮询查询用户是否扫描过二维码登录
+            var _self = this;
+            var timer = null;
+            UserApi.ToWechatPolling(params,function(response){
+                if(response.code == -90){
+                    if(_self.maxtime == 0){
+                        clearInterval(timer);
+                        _self.maxtime = 60;
+                        $('#qrCodeWrap').append('<div class="model"><div class="refresh-div"><img class="refresh" src="/web/login/img/shua.png" alt=""><p>二维码已失效,点击刷新</p></div></div>');
+                        $('#qrCodeWrap .model').click(function () {
+                            $(this).remove();
+                            _self.toQrCodeLogin();
+                        })
+                    }else{
+                        timer = setTimeout(function(){
+                            _self.getWrchatStatusData(params);
+                        },3000)
+                    }
+                }else {
+                    clearTimeout(timer); //清理定时任务
+                    if(response.code == 0){
+                        _self.userData = {
+                            account: response.data.account,
+                            email: response.data.email,
+                            phone: response.data.bindMobile,
+                            name: response.data.name,
+                            userName: response.data.userName,
+                            userId: response.data.userID,
+                            spId: response.data.serviceProviderID,
+                            clubId: response.data.clubID,
+                            shopId: response.data.shopID,
+                            identity: response.data.userIdentity,
+                            permission: response.data.userPermission,
+                            token: response.data.token
+                        };
+                        _self.setStorages( _self.userData);
+                    }else if(response.code == -4){
+                        window.location.href = 'binding.html';
+                    }
+                }
             });
         },
         toNormalLogin: function(){
@@ -60,60 +109,52 @@ var loginPage = new Vue({
                 pwdEle.attr('type','password');
             }
         },
-        // 失去焦点校验
-        blurHandle: function(event) {
+        blurHandle: function(event) {  // 失去焦点校验
             var el = event.currentTarget;
             verifyHandle(el);
         },
-        // 提交登录
-        loginSubmit: function () {
+        loginSubmit: function () {  // 账号登录
             var _self = this;
             var pass = verifyForm();
             if (this.loginLoading) { return false; }
             this.$nextTick(function(){
                 if (!pass) { return false; }
                 _self.loginLoading = true;
-                $.post(spiServer + '/user/login',{
-                    mobileOrEmail: _self.loginAccount,
-                    password: _self.loginPassword,
-                    source: 'www'
-                }).done(function(res){
+                var params =  {mobileOrEmail: _self.loginAccount,password: _self.loginPassword,source: 'www'};
+                UserApi.PostLoginAccount(params,function(response){
                     _self.loginLoading = false;
-                    if(res.code === 0){
+                    if(response.code === 0){
                         _self.userData = {
-                            account: res.data.account,
-                            email: res.data.email,
-                            phone: res.data.bindMobile,
-                            name: res.data.name,
-                            userName: res.data.userName,
-                            userId: res.data.userID,
-                            spId: res.data.serviceProviderID,
-                            clubId: res.data.clubID,
-                            shopId: res.data.shopID,
-                            identity: res.data.userIdentity,
-                            permission: res.data.userPermission,
-                            token: res.data.token
+                            account: response.data.account,
+                            email: response.data.email,
+                            phone: response.data.bindMobile,
+                            name: response.data.name,
+                            userName: response.data.userName,
+                            userId: response.data.userID,
+                            spId: response.data.serviceProviderID,
+                            clubId: response.data.clubID,
+                            shopId: response.data.shopID,
+                            identity: response.data.userIdentity,
+                            permission: response.data.userPermission,
+                            token: response.data.token
                         };
-                        localStorage.setItem('userInfo',JSON.stringify(_self.userData));
+                       _self.setStorages( _self.userData);
                         // 登录成功页面跳转
-                        /*var beforePath = localStorage.getItem("loginBeforePath");
+                        var beforePath = localStorage.getItem("loginBeforePath");
                         if (beforePath) {
                             window.location.href = beforePath;
                         }else{
                             window.location.href = '/index.html';
-                        }*/
-                    } else {
-                        // 登录失败
-                        alertInfo(res.msg);
+                        }
+                    } else {// 登录失败
+                        alertInfo(response.msg);
                     }
-                }).fail(function(err){
-                    console.log(err);
-                    alertInfo('登录失败,请稍后重试!');
-                    _self.loginLoading = false;
                 });
             });
         },
-
+        setStorages:function(data){//存储本地数据
+            localStorage.setItem('userInfo',JSON.stringify(data));
+        }
     },
     created: function () {
 

+ 22 - 0
src/main/resources/static/js/account/register.js

@@ -1,7 +1,10 @@
 var registerPage = new Vue({
     el: "#registerPage",
     data: {
+        showTabContentIndex:0,
+        showSupplierConfirm:true,
         advisoryStatus: false,
+        showClass:'',
         advisory:{
             name: '',
             phone: ''
@@ -111,6 +114,25 @@ var registerPage = new Vue({
         supplierRegister: function(){
             alertInfo('供应商注册');
             console.log(JSON.stringify(this.supplierUser));
+        },
+        clickTab:function(index){
+            var _self = this;
+            _self.showTabContentIndex = index;
+            if(index == 2){
+                _self.showSupplierConfirm = true;
+            }
+        },
+        showSupplier:function () {
+            var _self = this;
+            _self.showSupplierConfirm = false;
+        },
+        showVadvisory:function(){
+            var _self = this;
+            _self.showClass = 'active';
+        },
+        closeVadvisory:function () {
+            var _self = this;
+            _self.showClass = '';
         }
 
     },

+ 1 - 1
src/main/resources/static/js/base.js

@@ -340,7 +340,7 @@ function updateUrlParam(params) {
         return url;
     }
 }
-function setSearchProductList(list, userId) {
+function setSearchProductList(list, userId) {//处理搜索
     var productIdArr = [];
     var resultData = [];
     list.map(function (item) {

+ 98 - 0
src/main/resources/static/js/common/ajax.service.js

@@ -0,0 +1,98 @@
+
+/*
+*封装的ajax函数
+* Created by ZHJY on 2020/06/03.
+* @param  option.type     请求类型  get 和 post
+* @param  option.json     数据请求方式,
+* @param  option.url(必选) 请求的url地址   相同域名下的页面(此函数不支持跨域请求)
+* @param  option.data(必选) 请求协带的参数  以js对象的形式定义,如:{name:'张三'}
+* @param  option.replace  是否更新续签
+* @param  option.mask     是否使用模态层加载动画
+*/
+var Http = {
+        AjaxService : function(option){
+            var NODE_ENV_BASE_URL = $("#spiServer").val();
+            var REV_TOKEN_ENV = '',REV_TOKEN_USERID='';
+            var GET_LOGIN_STAUS = JSON.parse(window.localStorage.getItem("userInfo"));
+            if (GET_LOGIN_STAUS != null) {
+                REV_TOKEN_ENV = GET_LOGIN_STAUS.token;
+                REV_TOKEN_USERID = GET_LOGIN_STAUS.userID;
+            }else{
+                REV_TOKEN_ENV = 'X-token'
+            }
+            var loading = '';
+            var def = $.Deferred();
+            $.ajax({
+                url: NODE_ENV_BASE_URL + option.url,
+                data: option.data,
+                xhrFields: {//此处为跨域后台保持session一致,切勿删除!!!
+                    withCredentials: true
+                },
+                type: option.type,
+                dataType: "json",
+                headers: { 'X-Token': REV_TOKEN_ENV },
+                contentType: option.json ? 'application/json;charset=UTF-8' : 'application/x-www-form-urlencoded',
+                beforeSend:function () {
+                    // if (option.mask) {
+                    //     loading = layer.load(0,{shade: [0.1,'#000']}); //0.1透明度的白色背景
+                    // }
+                }
+            }).then(function(res) {
+                if(res.code== -99){
+                    layer.msg('登录已失效,请重新登录', { icon: 7  }, function() {
+                        Http.loginOutFn();
+                        location.href = "/login.html";
+                    });
+                }else{
+                    def.resolve(res);
+                }
+            }, function(error) {
+                if(error.status==504){
+                    alertInfo('网络请求超时,请重试~');
+                }
+                def.reject(error);
+            });
+            return def;
+        },
+        loginOutFn : function(){//退出登录
+            $.ajax({
+                type: "POST",
+                url: "/login_logoutAjax.action",
+                success: function (data) {
+                    var code = data.errcode;
+                    if(code == 0) {
+                        window.location.href = '/login.jsp';
+                        localStorage.removeItem('userInfo');
+                        if(window.location.href.indexOf("/?logout") > -1) {
+                            history.pushState(null, null, document.URL);  //防止页面后退
+                            window.addEventListener('popstate', function () {
+                                history.pushState(null, null, document.URL);
+                            });
+                        }
+                    }
+                },
+                error : function (res) {
+                    console.log('退出失败',res);
+                }
+            })
+        },
+        uploadImage : function(option,callback) {//上传图片
+            var NODE_ENV_BASE_URL = $("#spiServer").val();
+            var NODE_ENV_BASE_URL = 'https://spi-b.caimei365.com';
+            $.ajax({
+                url: NODE_ENV_BASE_URL + option.url,
+                type: 'POST',
+                cache: false,
+                data: option.data,
+                processData: false,
+                contentType: false,
+                dataType: "json",
+                success: function (res) {
+                    callback(res)
+                },
+                error: function (xhr, type, errorThrown) {
+                    console.log("照片上传失败")
+                }
+            });
+        }
+};

+ 13 - 0
src/main/resources/static/js/common/serviceapi/club.service.js

@@ -0,0 +1,13 @@
+/* HTTP API 机构业务模块
+ * Copyright 2020, CAIMEI365
+ * Date   2020/06/16
+ * auther ZHJY
+ */
+var ClubApi = {
+        ClubRegister: function (params, callback) {//获取扫码登陆二维码
+            Http.AjaxService({ url:'/club/common', type:'post', data:params, json:true, mask:true,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+};

+ 21 - 0
src/main/resources/static/js/common/serviceapi/order.service.js

@@ -0,0 +1,21 @@
+/* HTTP API 机构业务模块
+ * Copyright 2020, CAIMEI365
+ * Date   2020/06/16
+ * auther ZHJY
+ */
+var OrderApi = {
+        /* 订单支付,效验付款规则 orderId 订单ID */
+        OrderPaymentValidation: function (params, callback) {
+            Http.AjaxService({ url:'/order/paymentValidation', type:'GET', data:params, json:false, mask:false,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /* 订单支付,效验付款规则 orderId 订单ID */
+        OrderBalanceDeduction: function (params, callback) {
+            Http.AjaxService({ url:'/order/balanceDeduction', type:'post', data:params, json:false, mask:false,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+};

+ 49 - 0
src/main/resources/static/js/common/serviceapi/pay.service.js

@@ -0,0 +1,49 @@
+/* HTTP API PC支付业务模块
+ * Copyright 2020, CAIMEI365
+ * Date   2020/07/14
+ * auther ZHJY
+ */
+var PayApi = {
+        PayOrderCheckoutCounter: function (params, callback) {//网银支付链接初始化数据
+            Http.AjaxService({ url:'/PayOrder/checkoutCounter', type:'GET', data:params, json:true, mask:true,replace:false})
+                .then(function(res){
+                    callback(res);
+                });
+        },
+        PayOrderPcMallPay: function (params, callback) {//查询跳转网银页面
+            Http.AjaxService({ url:'/PayOrder/pcMallPay', type:'POST', data:params, json:false, mask:true,replace:false})
+                .then(function(res){
+                    callback(res);
+                });
+        },
+        PayOrderMiniWxPay: function (params, callback) {//调起微信公众号支付
+            Http.AjaxService({ url:'/PayOrder/miniWxPay', type:'post', data:params, json:false, mask:false,replace:false})
+                .then(function(res){
+                    callback(res);
+                });
+        },
+        PayOrderPayWhetherSuccess: function (params, callback) {//查询微信是否已完成支付
+            Http.AjaxService({ url:'/PayOrder/payWhetherSuccess', type:'GET', data:params, json:true, mask:false,replace:false})
+                .then(function(res){
+                    callback(res);
+                });
+        },
+        PayOrderFindOrderStatus: function (params, callback) {//查询判断是否已完成支付
+            Http.AjaxService({ url:'/PayOrder/findOrderStatus', type:'GET', data:params, json:true, mask:false,replace:false})
+                .then(function(res){
+                    callback(res);
+                });
+        },
+        PayOrderPayLink: function (params, callback) {//查询判断是否已完成支付unpaidAmount 本次待付款金额 orderId  主订单ID
+            Http.AjaxService({ url:'/PayOrder/payLink', type:'POST', data:params, json:false, mask:true,replace:false})
+                .then(function(res){
+                    callback(res);
+                });
+        },
+        PayOrdersecondHandPay: function (params, callback) {//发布二手商品支付 本次待付款金额 productID  主订单ID
+            Http.AjaxService({ url:'/PayOrder/secondHandPay', type:'POST', data:params, json:false, mask:true,replace:false})
+                .then(function(res){
+                    callback(res);
+                });
+        }
+};

+ 65 - 0
src/main/resources/static/js/common/serviceapi/second.service.js

@@ -0,0 +1,65 @@
+/* HTTP API 二手业务模块
+ * Copyright 2020, CAIMEI365
+ * Date   2020/07/16
+ * auther xw
+ */
+var SecondApi = {
+        SecondHandProduct: function (params, callback) {//发布信息
+            Http.AjaxService({ url:'/product/releaseSecondHandProduct', type:'post', data:params, json:false, mask:true,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+         uploadimg: function (params, callback) {//上传图片
+            Http.uploadImage({ url:'/formData/MultiPictareaddData',data:params},callback)
+        },
+        SeconHandProductList: function (params, callback) {//商品列表
+            Http.AjaxService({ url:'/product/getSecondHandProductList', type:'get', data:params, json:true, mask:true,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+         brandList: function (params, callback) {//品牌列表
+            Http.AjaxService({ url:'/product/brandList', type:'get', data:params, json:true, mask:true,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        ProductCount: function (params, callback) {//浏览量
+            Http.AjaxService({ url:'/product/updateSecondHandProductCount', type:'get', data:params, json:true, mask:true,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        ProductDetail: function (params, callback) {//商品详情
+            Http.AjaxService({ url:'/product/getSecondHandProductDetail', type:'get', data:params, json:true, mask:true,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+         ProductRecommend: function (params, callback) {//商品详情/相关推荐
+            Http.AjaxService({ url:'/product/getSecondHandProductRecommend', type:'get', data:params, json:true, mask:true,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+         getProvince: function (params, callback) {//获取省份信息
+            Http.AjaxService({ url:'/product/getSecondHandProductRecommend', type:'get', data:params, json:true, mask:true,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+         getCity: function (params, callback) {//获取区分信息
+            Http.AjaxService({ url:'/club/city', type:'get', data:params, json:true, mask:true,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+         getTown: function (params, callback) {//获取区分信息
+            Http.AjaxService({ url:'/club/town', type:'get', data:params, json:true, mask:true,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+
+};

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

@@ -0,0 +1,160 @@
+/* HTTP API 供应商业务模块
+ * Copyright 2020, CAIMEI365
+ * Date   2020/06/16
+ * auther ZHJY
+ */
+var SupplierApi = {
+        ShipmentsInfo: function (params, callback) {//发货商品初始化
+            Http.AjaxService({ url:'/supplier/shipmentsInfo', type:'GET', data:params, json:true, mask:true,replace:true})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        MyOrderList: function (params, callback) {//供应商订单列表
+            Http.AjaxService({ url:'/supplier/myOrderList', type:'GET', data:params, json:true, mask:true,replace:true})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        uploadimg: function (params, callback) {//供应商添加物流上传图片
+            Http.uploadImage({ url:'/formData/MultiPictareaddData',data:params},callback)
+        },
+        GetMyProductList: function (params, callback) {//供应商商品列表
+            Http.AjaxService({ url:'/supplier/myProduct', type:'GET', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        SwitchFeatured: function (params, callback) {//供应商商品增加删除 主推商品标志
+            Http.AjaxService({ url:'/supplier/switchFeatured', type:'POST', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        SupplierSoldOut: function (params, callback) {//供应商商品下架(批量下架,单个商品下架)
+            Http.AjaxService({ url:'/supplier/soldOut', type:'POST', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        brandList: function (params, callback) {//品牌管理列表
+            Http.AjaxService({ url:'/supplier/brandManagement', type:'GET', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res);
+            });
+        },
+         addBrand: function (params, callback) {//品牌管理/提交新品牌
+            Http.AjaxService({ url:'/supplier/addBrand', type:'post', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        tiyixi: function (params, callback) {//发货/添加物流页 确定提交订单列表
+            Http.AjaxService({ url:'/supplier/addLogistics', type:'post', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        shipmentsRecord: function (params, callback) {//发货/添加物流页 确定提交订单列表
+            Http.AjaxService({ url:'/supplier/shipmentsRecord', type:'GET', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        GetBrandAssociation: function (params, callback) {//发布商品品牌联想
+            Http.AjaxService({ url:'/supplier/brandAssociation', type:'GET', data:params, json:false, mask:false,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        logisticsInfo: function (params, callback) {//记录的查看物流
+            Http.AjaxService({ url:'/supplier/logisticsInfo', type:'GET', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        AddSupplierBrand: function (params, callback) {//发布商品提交新品牌
+            Http.AjaxService({ url:'/supplier/addBrand', type:'post', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        CheckSupplierBrandDetection: function (params, callback) {//发布商品提交新品牌
+            Http.AjaxService({ url:'/supplier/brandDetection', type:'get', data:params, json:false, mask:true,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        AddSupplierReleaseProduct: function (params, callback) {//提交发布商品
+            Http.AjaxService({ url:'/supplier/releaseProduct', type:'post', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        SupplierViewShop: function (params, callback) {//查看店铺
+            Http.AjaxService({ url:'/supplier/viewShop', type:'get', data:params, json:false, mask:true,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        SupplierViewShopProduct: function (params, callback) {//查看店铺供应商产品
+            Http.AjaxService({ url:'/supplier/product', type:'get', data:params, json:false, mask:false,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        SupplierViewShopInfo: function (params, callback) {//获取登录供应商信息
+            Http.AjaxService({ url:'/supplier/shopInfo', type:'get', data:params, json:false, mask:true,replace:false})
+                .then(function(res){
+                    callback(res);
+                });
+        },
+        EditReleaseProductInfo: function (params, callback) {//编辑我的商品回显数据
+            Http.AjaxService({ url:'/supplier/productInfo', type:'get', data:params, json:false, mask:true,replace:false})
+                .then(function(res){
+                    callback(res);
+                });
+        },
+        SearchSupplierProduct: function (params, callback) {//编辑我的商品回显数据
+            Http.AjaxService({ url:'/supplier/productSearch', type:'get', data:params, json:false, mask:true,replace:false})
+                .then(function(res){
+                    callback(res);
+                });
+        },
+        shopInfo: function (params, callback) {//资料信息 回显数据
+            Http.AjaxService({ url:'/supplier/shopInfo', type:'GET', data:params, json:false, mask:true,replace:true})
+                .then(function(res){
+                    callback(res);
+                });
+        },
+        kdList: function ( callback) {//快递公司
+            Http.AjaxService({ url:'/supplier/logisticsCompany', type:'GET',  json:false, mask:true,replace:true})
+                .then(function(res){
+                    callback(res);
+                });
+        },
+        addLogisticsInfo: function (params, callback) {//追加物流
+            Http.AjaxService({ url:'/supplier/addLogisticsInfo', type:'post',data:params,  json:false, mask:true,replace:true})
+                .then(function(res){
+                    callback(res);
+                });
+        },
+        cancelShipment: function (params, callback) {//查看物流/撤销发货
+            Http.AjaxService({ url:'/supplier/cancelShipment', type:'post', data:params, json:false, mask:true,replace:true})
+                .then(function(res){
+                    callback(res);
+                });
+        },
+        shopOrderDetails: function (params, callback) {//我的订单/查看详情
+            Http.AjaxService({ url:'/supplier/shopOrderDetails', type:'GET', data:params, json:false, mask:true,replace:true})
+                .then(function(res){
+                    callback(res);
+                });
+        },
+         modifiedData: function (params, callback) {//我的订单/查看详情
+            Http.AjaxService({ url:'/supplier/modifiedData', type:'post', data:params, json:false, mask:true,replace:true})
+                .then(function(res){
+                    callback(res);
+                });
+        }
+};

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

@@ -0,0 +1,67 @@
+/* HTTP API 用户业务模块
+ * Copyright 2020, CAIMEI365
+ * Date   2020/06/16
+ * auther ZHJY
+ */
+var UserApi = {
+        PostLoginAccount : function (params,callback) {//新系统登录
+            Http.AjaxService({ url:'/user/login', type:'post', data:params, json:false})
+                .then(function(res){
+                    callback(res)
+                });
+        },
+        ToWechatLogin : function (params,callback) {//获取扫码登录参数
+            Http.AjaxService({ url:'/user/toWechatLogin', type:'get', data:params, json:false})
+                .then(function(res){
+                    callback(res)
+                });
+        },
+        ToWechatPolling : function (params,callback) {//扫码登录轮询
+            Http.AjaxService({ url:'/user/polling', type:'get', data:params, json:false})
+                .then(function(res){
+                    callback(res)
+                });
+        },
+        ClubRegister: function (params, callback) {//机构注册
+            Http.AjaxService({ url:'/club/common', type:'post', data:params, json:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        ClubUpgrade : function(params,callback) {//机构注册升级信息
+            Http.AjaxService({ url:'/club/upgrade', type:'post', data:params, json:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        SupplierRgister:function(params, callback){//供应商注册
+            Http.AjaxService({url: '/supplier/register', type: 'post', data: params, json: false})
+            .then(function (res) {
+                callback(res)
+            });
+        },
+        SupplierShopInfo:function(params, callback){//供应商修改申请信息查询
+            Http.AjaxService({url: '/supplier/shopInfo', type: 'get', data: params, json: false})
+            .then(function (res) {
+                callback(res)
+            });
+        },
+        UpdateCompanyInfo: function (params, callback) {//供应商修改申请信息保存
+            Http.AjaxService({ url:'/supplier/updateCompanyInfo', type:'post', data:params, json:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        quickConsultation : function(params,callback) {//入驻咨询
+            Http.AjaxService({ url:'/club/advisory', type:'post', data:params, json:false})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        BindOrganization : function(params,callback) { //扫码微信绑定机构
+            Http.AjaxService({ url:'/user/bindOrganization', type:'post', data:params, json:false})
+            .then(function(res){
+                callback(res)
+            });
+        },
+};

+ 269 - 0
src/main/resources/static/js/common/serviceapi/utils.service.js

@@ -0,0 +1,269 @@
+/* HTTP API 公共模块业务
+ * Copyright 2020, CAIMEI365
+ * Date   2020/06/16
+ * auther ZHJY
+ */
+var PublicApi = {
+        GetProvince:function(params,callback){ //获取省份信息
+            Http.AjaxService({ url:'/club/province', type:'get', data:params, json:false, mask:false,replace:false})
+                .then(function(res){
+                    callback(res)
+                });
+        },
+        GetCity:function(params,callback){ //获取区分信息
+            Http.AjaxService({ url:'/club/city', type:'get', data:params, json:true, mask:false,replace:false})
+                .then(function(res){
+                    callback(res)
+                });
+        },
+        GetTown:function(params,callback){ //获取市信息
+            Http.AjaxService({ url:'/club/town', type:'get', data:params, json:true, mask:false,replace:false})
+                .then(function(res){
+                    callback(res)
+                });
+        },
+        GetFirstClassFication:function(params,callback){ //获取一级分类
+            Http.AjaxService({ url:'/supplier/primaryClassification', type:'get', data:params, json:true, mask:false,replace:false})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        GetTwoClassFication:function(params,callback){ //获取二级分类
+            Http.AjaxService({ url:'/supplier/secondaryClassification', type:'get', data:params, json:true, mask:false,replace:false})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        GetThreeClassFication:function(params,callback){ //获取三级分类
+            Http.AjaxService({ url:'/supplier/threeLevelClassification', type:'get', data:params, json:true, mask:false,replace:false})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        addCart : function (params,callback) { //加入购物车
+            Http.AjaxService({ url:'/shoppingCart/addCart', type:'post', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        getWrchatQrcode : function(params,callback){//获取扫码登陆二维码
+            Http.AjaxService({ url:'/user/toWechatLogin', type:'get', data:params, json:true, mask:false,replace:false})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        getWrchatStatus: function(params,callback){//扫码登陆轮询
+            Http.AjaxService({ url:'/user/polling', type:'get', data:params, json:true, mask:false,replace:false})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        getImgVerifyCode : function (params,callback){ //获取图形验证图形
+            Http.AjaxService({ url:'/user/getImgVerifyCode', type:'get', data:{platformType:0}, json:true, mask:false,replace:false})
+            .then(function(res){
+                if (res.code == 0) {
+                    params.$img.attr("src",res.data.baseImage);
+                    params.$token.val(res.data.token);
+                    callback(res);
+                }
+            });
+        },
+        getMobileSMScode : function (params,callback){//直接获取手机短信验证码
+            Http.AjaxService({ url:'/user/activateCodeByReg', type:'get', data:params, json:true, mask:false,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        getNoteSMScode : function (params,callback){//绑定机构运营人员获取短信验证码
+            Http.AjaxService({ url:'/user/note', type:'get', data:params, json:true, mask:false,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        getEmailSMScode : function (params,callback) { //获取邮箱短信验证码
+            Http.AjaxService({ url:'/user/mailbox', type:'get', data:params, json:true, mask:false,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        getClubMobileCode : function (params,callback) { //获取手机短信验证码
+            Http.AjaxService({ url:'/club/modifyPhoneNumber', type:'get', data:params, json:true, mask:false,replace:true})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        getEmailsms : function (opts) {// 直接获取邮箱验证码
+            var _email = {
+                    ele : opts.$email,
+                    value : opts.$email.val(),
+                    boolean : true,
+                    nullTip : '请输入邮箱地址',
+                    errTip : '邮箱格式不正确',
+                    subBtn : opts.$subBtn,
+                    regExp : new RegExp(_RegExp.email)
+                };
+            if(!_util.validateFn(_email)){
+                return;
+            }else{
+                var params = {
+                    email : opts.$email.val(),
+                    status : opts.$codeBtn.attr('data-codeType')
+                };
+                request.getEmailSMScode(params,function (response) {
+                    if(response.code == 0){
+                        cmModal.toast('邮箱验证码已发送',2000)
+                        opts.$codeBtn.val('(120s)重新获取');
+                        var _time = 120;
+                        var _timer = setInterval(function () {
+                            --_time;
+                            if (_time < 0) {
+                                clearInterval(_timer);
+                                opts.$codeBtn.val('获取校验码');
+                                opts.$codeBtn.attr("disabled", false);
+                            } else {
+                                opts.$codeBtn.val('(' + _time + 's)重新获取');
+                            }
+                        }, 1000);
+                    }else{
+                        opts.$codeBtn.val('获取校验码');
+                        opts.$email.siblings('.err-tip').show().html(response.msg);
+                        _util.hideTip(opts.$email.siblings('.err-tip'));
+                    }
+                })
+            }
+        },
+        findCompanyPwd : function(params,callback) {//用户找回密码
+            Http.AjaxService({ url:'/user/findCompanyPwd', type:'post', data:params, json:true, mask:true,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        clubChangeMobile:function(params,callback){//更换手机号
+            Http.AjaxService({ url:'/club/changeMobile', type:'post', data:params, json:true, mask:true,replace:true})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        editCompanyInfo : function (params,callback) {//获取要修改的企业信息
+            Http.AjaxService({ url:'/user/club/applicationData', type:'get', data:params, json:true, mask:true,replace:true})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        updateCompanyInfo : function (params,callback) {//提交机构修改申请信息
+            Http.AjaxService({ url:'/user/club/updateCompanyInfo', type:'post', data:params, json:true, mask:true,replace:false})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        modifiedData : function (params,callback) {//提交个人中心修改机构信息
+            Http.AjaxService({ url:'/operation/modifiedData', type:'post', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res);
+            });
+        },
+        bindIngUseEmail : function(params,callback) { //未绑定邮箱账户绑定邮箱
+            Http.AjaxService({ url:'/user/binding', type:'post', data:params, json:true, mask:true,replace:false})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        getOperationList : function (params,callback) { //获取机构运营人员列表
+            Http.AjaxService({ url:'/user/bindOrganization', type:'post', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        addOperation : function (params,callback) { //机构员工管理添加运营人员
+            Http.AjaxService({ url:'/operation/add', type:'post', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        deleteOperation : function (params,callback) { //机构员工管理删除运营人员
+            Http.AjaxService({ url:'/operation/delete', type:'post', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        updateInvitationCode : function (params,callback) { //机构员工管理更新邀请码
+            Http.AjaxService({ url:'/operation/updateInvitationCode', type:'post', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        queryShoppingCartList:function(params,callback){ //购物车数据列表
+            Http.AjaxService({ url:'/shoppingCart/shoppingInfo', type:'get', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        shoppingCartUpdate:function(params,callback){//更新商品增减
+            Http.AjaxService({ url:'/shoppingCart/update', type:'post', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        shoppingCartDelete:function(params,callback) {//删除购物车商品
+            Http.AjaxService({ url:'/shoppingCart/delete', type:'post', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        queryOrderConfirmInfo:function(params,callback){ //购物车数据列表
+            Http.AjaxService({ url:'/order/confirm', type:'get', data:params, json:true, mask:true,replace:true})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        queryAddressList:function(params,callback){ //地址列表
+            Http.AjaxService({ url:'/personalCenter/findAddress', type:'get', data:params, json:true, mask:true,replace:true})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        deleteNewAddress:function(params,callback){ //删除地址
+            Http.AjaxService({ url:'/personalCenter/deleteAddress', type:'get', data:params, json:true, mask:true,replace:true})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        addNewAddress:function(params,callback) {//保存地址
+            Http.AjaxService({ url:'/personalCenter/saveAddress', type:'post', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        defaultAddress:function(params,callback) {//设为默认地址
+            Http.AjaxService({ url:'/personalCenter/defaultAddress', type:'post', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        getOrderPostage:function(params,callback){ //获取邮费信息
+            Http.AjaxService({ url:'/order/postage', type:'get', data:params, json:true, mask:false,replace:true})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        getFindInvoice:function(params,callback){ //获取发票信息
+            Http.AjaxService({ url:'/personalCenter/findInvoice', type:'get', data:params, json:true, mask:false,replace:true})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        confirmOrder:function (params,callback) {//提交订单
+            Http.AjaxService({ url:'/order/submit', type:'post', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res)
+            });
+        },
+        updateInvoice:function (params,callback) {//保存发票信息
+            Http.AjaxService({ url:'/personalCenter/invoice', type:'post', data:params, json:false, mask:true,replace:true})
+            .then(function(res){
+                callback(res)
+            });
+        },
+};
+
+

Файловите разлики са ограничени, защото са твърде много
+ 1 - 0
src/main/resources/static/lib/layer/layer.min.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 0
src/main/resources/static/lib/layer/mobile/layer.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
src/main/resources/static/lib/layer/mobile/need/layer.css


BIN
src/main/resources/static/lib/layer/theme/default/icon-ext.png


BIN
src/main/resources/static/lib/layer/theme/default/icon.png


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
src/main/resources/static/lib/layer/theme/default/layer.css


BIN
src/main/resources/static/lib/layer/theme/default/loading-0.gif


BIN
src/main/resources/static/lib/layer/theme/default/loading-1.gif


BIN
src/main/resources/static/lib/layer/theme/default/loading-2.gif


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

@@ -56,6 +56,7 @@
 <template th:replace="components/footer"></template>
 <template th:replace="components/foot-link"></template>
 <script charset="utf-8" type="text/javascript" src="https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/user.service.js(v=${version})}"></script>
 <script charset="utf-8" type="text/javascript" th:src="@{/js/account/login.js(v=${version})}"></script>
 </body>
 </html>

+ 78 - 80
src/main/resources/templates/account/register.html

@@ -13,104 +13,106 @@
 
 <!-- 注册账号 -->
 <div id="registerPage">
-    <div class="selectAccount">
+    <div class="selectAccount" v-show="showTabContentIndex == 0">
         <div class="title">请选择注册的账号类型</div>
         <div class="cont">
-            <span class="a"><img src="/img/account/club.png">机构</span>
-            <span class="b"><img src="/img/account/supplier.png">供应商</span>
+            <span class="a"><img src="/img/account/club.png" @click="clickTab(1)">机构</span>
+            <span class="b"><img src="/img/account/supplier.png"  @click="clickTab(2)">供应商</span>
         </div>
     </div>
-    <div class="signAccount">
-        <div>
-            <div class="title">欢迎机构入驻</div>
-            <div class="advisory">
-                <span v-if="isPC" class="icon">入住咨询</span>
-                <div class="advisoryInfo">
-                    <div class="info">若暂不方便入驻机构或无法入驻,您可以留下您的姓名和联系方式,采美工作人员会第一时间联系您。</div>
-                    <form>
-                        <div class="formLine">
-                            <p><em>*</em>姓名:</p>
-                            <input type="text" v-model.trim="advisory.name" placeholder="请输入您的姓名" :rule="rule.name" maxlength="50" @blur="blurHandle($event)" needverify>
-                            <i class="checked icon mIcon"></i>
-                            <span class="errTips icon mIcon" tips="请输入正确的联系人姓名"></span>
-                        </div>
-                        <div class="formLine">
-                            <p><em>*</em>手机号:</p>
-                            <input type="text" v-model.trim="advisory.phone" placeholder="请输入您的常用手机号" :rule="rule.phone" maxlength="12" @blur="blurHandle($event)" needverify>
-                            <i class="checked icon mIcon"></i>
-                            <span class="errTips icon mIcon" tips="请输入有效电话号码"></span>
-                        </div>
-                        <button class="btn" type="button" @click="postAdvisory()">提交</button>
-                    </form>
-                </div>
-            </div>
-            <div class="registerClub">
-                <!--机构注册表单-->
+    <div class="signAccount" v-show="showTabContentIndex == 1">
+        <div class="title">欢迎机构入驻</div>
+        <div class="advisory" >
+            <span v-if="isPC" class="icon">入驻咨询</span>
+            <span v-else class="mIcon" @click="showVadvisory">入驻咨询</span>
+            <div class="mask" :class="showClass" @click="closeVadvisory"></div>
+            <div class="advisoryInfo" :class="showClass">
+                <div class="info">若暂不方便入驻机构或无法入驻,您可以留下您的姓名和联系方式,采美工作人员会第一时间联系您。</div>
+                <div v-if="!isPC" class="icon-close" @click="closeVadvisory"></div>
                 <form>
                     <div class="formLine">
-                        <p><em>*</em>联系人:</p>
-                        <input type="text" v-model.trim="clubUser.name" placeholder="请输入联系人姓名" :rule="rule.name" maxlength="50" @blur="blurHandle($event)" needverify>
+                        <p><em>*</em>姓名:</p>
+                        <input type="text" v-model.trim="advisory.name" placeholder="请输入您的姓名" :rule="rule.name" maxlength="50" @blur="blurHandle($event)" needverify>
                         <i class="checked icon mIcon"></i>
                         <span class="errTips icon mIcon" tips="请输入正确的联系人姓名"></span>
                     </div>
                     <div class="formLine">
-                        <p><em>*</em>手机号(<span>手机号可用作登录账号</span>):</p>
-                        <input type="text" v-model.trim="clubUser.phone" placeholder="请输入您的常用手机号" :rule="rule.phone" maxlength="12" @blur="blurHandle($event)" needverify>
+                        <p><em>*</em>手机号:</p>
+                        <input type="text" v-model.trim="advisory.phone" placeholder="请输入您的常用手机号" :rule="rule.phone" maxlength="12" @blur="blurHandle($event)" needverify>
                         <i class="checked icon mIcon"></i>
                         <span class="errTips icon mIcon" tips="请输入有效电话号码"></span>
                     </div>
-                    <div class="formLine code">
-                        <p><em>*</em>短信验证码:</p>
-                        <input type="text" v-model.trim="clubUser.code" placeholder="请输入短信验证码" :rule="rule.code" maxlength="12" @blur="blurHandle($event)" needverify>
-                        <i class="checked icon mIcon"></i>
-                        <span class="errTips icon mIcon" tips="请输入有效短信验证码"></span>
-                        <a class="getCode" href="javascript:void(0);">获取短信验证码</a>
-                    </div>
-                    <div class="formLine">
-                        <p><em>*</em>登录密码:</p>
-                        <input type="password" v-model.trim="clubUser.password" placeholder="请输入8-16位数字和字母组合" :rule="rule.password" maxlength="16" @blur="blurHandle($event)" needverify>
-                        <i class="checked icon mIcon"></i>
-                        <span class="errTips icon mIcon" tips="8-16位数字或字母或字符"></span>
-                        <i class="icon showPwd" @click="showPassword($event)"></i>
-                    </div>
-                    <div class="formLine">
-                        <p><em>*</em>确认密码:</p>
-                        <input type="password" v-model.trim="clubUser.password2" placeholder="请再次确认密码" :rule="rule.password" maxlength="16" @blur="blurHandle($event)" needverify>
-                        <i class="checked icon mIcon"></i>
-                        <span class="errTips icon mIcon" tips="8-16位数字或字母或字符"></span>
-                        <i class="icon showPwd" @click="showPassword($event)"></i>
-                    </div>
-                    <div class="subLine">
-                        <p><input type="checkbox">我已阅读并同意<a href="javascript:void(0);">《机构协议》</a><a href="javascript:void(0);">《用户协议》</a>及<a href="javascript:void(0);">《隐私权政策》</a></p>
-                        <button class="btn" type="button" @click="clubRegister()">注册</button>
-                    </div>
+                    <button class="btn" type="button" @click="postAdvisory()">提交</button>
                 </form>
             </div>
         </div>
-        <div>
-            <div class="supplierConfirm">
-                <div class="cont">
-                    <h3>供应商注册需知</h3>
-                    <p>采美365网感谢您的关注!</p>
-                    <p>采美365网是美容行业一站式B2B 采购交易服务平台,供应商入驻需平台审核。注册说明如下,请您仔细阅读:</p>
-                    <ul>
-                        <li>1、本网站为正品网站,谢绝非自营/自有品牌(以登记备案为准),代理商应出具授权书等说明文件,杜绝山寨、假冒伪劣等侵权、侵害他人利益的行为。</li>
-                        <li>2、注册需要提供公司名称、营业执照、公司地址、联系人等基本信息。</li>
-                        <li>3、供应商注册审核通过后需缴纳平台信息服务管理费用。</li>
-                    </ul>
-                    <div class="btnLine">
-                        <p><input type="checkbox" checked readonly>已阅读供应商注册需知</p>
-                        <button type="button">同意</button>
-                    </div>
+        <div class="registerClub">
+            <!--机构注册表单-->
+            <form>
+                <div class="formLine">
+                    <p><em>*</em>联系人:</p>
+                    <input type="text" v-model.trim="clubUser.name" placeholder="请输入联系人姓名" :rule="rule.name" maxlength="50" @blur="blurHandle($event)" needverify>
+                    <i class="checked icon mIcon"></i>
+                    <span class="errTips icon mIcon" tips="请输入正确的联系人姓名"></span>
+                </div>
+                <div class="formLine">
+                    <p><em>*</em>手机号(<span>手机号可用作登录账号</span>):</p>
+                    <input type="text" v-model.trim="clubUser.phone" placeholder="请输入您的常用手机号" :rule="rule.phone" maxlength="12" @blur="blurHandle($event)" needverify>
+                    <i class="checked icon mIcon"></i>
+                    <span class="errTips icon mIcon" tips="请输入有效电话号码"></span>
+                </div>
+                <div class="formLine code">
+                    <p><em>*</em>短信验证码:</p>
+                    <input type="text" v-model.trim="clubUser.code" placeholder="请输入短信验证码" :rule="rule.code" maxlength="12" @blur="blurHandle($event)" needverify>
+                    <i class="checked icon mIcon"></i>
+                    <span class="errTips icon mIcon" tips="请输入有效短信验证码"></span>
+                    <a class="getCode" href="javascript:void(0);">获取短信验证码</a>
+                </div>
+                <div class="formLine">
+                    <p><em>*</em>登录密码:</p>
+                    <input type="password" v-model.trim="clubUser.password" placeholder="请输入8-16位数字和字母组合" :rule="rule.password" maxlength="16" @blur="blurHandle($event)" needverify>
+                    <i class="checked icon mIcon"></i>
+                    <span class="errTips icon mIcon" tips="8-16位数字或字母或字符"></span>
+                    <i class="icon showPwd" @click="showPassword($event)"></i>
+                </div>
+                <div class="formLine">
+                    <p><em>*</em>确认密码:</p>
+                    <input type="password" v-model.trim="clubUser.password2" placeholder="请再次确认密码" :rule="rule.password" maxlength="16" @blur="blurHandle($event)" needverify>
+                    <i class="checked icon mIcon"></i>
+                    <span class="errTips icon mIcon" tips="8-16位数字或字母或字符"></span>
+                    <i class="icon showPwd" @click="showPassword($event)"></i>
+                </div>
+                <div class="subLine">
+                    <p><input type="checkbox">我已阅读并同意<a href="javascript:void(0);">《机构协议》</a><a href="javascript:void(0);">《用户协议》</a>及<a href="javascript:void(0);">《隐私权政策》</a></p>
+                    <button class="btn" type="button" @click="clubRegister()">注册</button>
+                    <p class="subLine-p" @click="clickTab(2)">我是供应商,去入驻 ></p>
+                </div>
+            </form>
+        </div>
+    </div>
+    <div class="signAccount" v-show="showTabContentIndex == 2">
+        <div class="supplierConfirm" v-if="showSupplierConfirm">
+            <div class="cont">
+                <h3>供应商注册需知</h3>
+                <p>采美365网感谢您的关注!</p>
+                <p>采美365网是美容行业一站式B2B 采购交易服务平台,供应商入驻需平台审核。注册说明如下,请您仔细阅读:</p>
+                <ul>
+                    <li>1、本网站为正品网站,谢绝非自营/自有品牌(以登记备案为准),代理商应出具授权书等说明文件,杜绝山寨、假冒伪劣等侵权、侵害他人利益的行为。</li>
+                    <li>2、注册需要提供公司名称、营业执照、公司地址、联系人等基本信息。</li>
+                    <li>3、供应商注册审核通过后需缴纳平台信息服务管理费用。</li>
+                </ul>
+                <div class="btnLine">
+                    <p><input type="checkbox" checked readonly>已阅读供应商注册需知</p>
+                    <button type="button" @click="showSupplier">同意</button>
                 </div>
             </div>
+        </div>
+        <div v-else>
             <div class="title">欢迎供应商入驻</div>
             <div class="registerShop">
                 <!--供应商注册表单-->
                 <form>
-
                     <h6 class="tit">账户信息</h6>
-
                     <div class="formLine">
                         <p><em>*</em>手机号(<span>手机号可用作登录账号</span>):</p>
                         <input type="text" v-model.trim="supplierUser.phone" placeholder="请输入您的常用手机号" :rule="rule.phone" maxlength="12" @blur="blurHandle($event)" needverify>
@@ -138,9 +140,7 @@
                         <span class="errTips icon mIcon" tips="8-16位数字或字母或字符"></span>
                         <i class="icon showPwd" @click="showPassword($event)"></i>
                     </div>
-
                     <h6 class="tit">基本信息</h6>
-
                     <div class="formLine">
                         <p><em>*</em>公司名称:</p>
                         <input type="text" v-model.trim="supplierUser.shopName" placeholder="请与营业执照的注册名称保持一致" :rule="rule.name" maxlength="50" @blur="blurHandle($event)" needverify>
@@ -158,9 +158,7 @@
                         <input type="text" v-model.trim="supplierUser.email" placeholder="请输入邮箱地址" maxlength="50">
                         <span class="errTips"></span>
                     </div>
-
                     <h6 class="tit">详细信息</h6>
-
                     <div class="formLine">
                         <p>公司简称:</p>
                         <input type="text" v-model.trim="supplierUser.shopAbbr" placeholder="请输入公司简称" maxlength="50">
@@ -214,9 +212,9 @@
                     <div class="subLine">
                         <p><input type="checkbox">我已阅读并同意<a href="javascript:void(0);">《供应商协议》</a><a href="javascript:void(0);">《用户协议》</a>及<a href="javascript:void(0);">《隐私权政策》</a></p>
                         <button class="btn" type="button" @click="supplierRegister()">同意并提交审核</button>
+                        <p class="subLine-p" @click="clickTab(1)">我是机构,去入驻 ></p>
                     </div>
                 </form>
-
             </div>
         </div>
     </div>

+ 2 - 0
src/main/resources/templates/components/foot-link.html

@@ -3,4 +3,6 @@
 <script charset="utf-8" type="text/javascript" src="/lib/swiper.min.js"></script>
 <script charset="utf-8" type="text/javascript" src="/lib/jquery-confirm.min.js"></script>
 <script charset="utf-8" type="text/javascript" src="/lib/vue2.6.11.min.js"></script>
+<script charset="utf-8" type="text/javascript" src="/lib/layer/layer.min.js"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/common/ajax.service.js(v=${version})}"></script>
 <script charset="utf-8" type="text/javascript" th:src="@{/js/base.js(v=${version})}"></script>

Някои файлове не бяха показани, защото твърде много файлове са промени