Bladeren bron

Merge branch 'master' of http://182.92.126.35:3000/msx/Vent-App

lxh 6 dagen geleden
bovenliggende
commit
046e950dea

+ 0 - 1
manifest.json

@@ -5,7 +5,6 @@
     "versionName" : "2.2.22",
     "versionCode" : 1,
     "transformPx" : false,
-    "external" : true,
     "app-plus" : {
         "orientation" : [
             //竖屏正方向

+ 20 - 13
package-lock.json

@@ -7,6 +7,7 @@
       "dependencies": {
         "dayjs": "^1.11.10",
         "echarts": "^5.5.1",
+        "es6-promise": "^4.2.8",
         "flv.js": "^1.6.2",
         "moment": "^2.30.1",
         "uview-ui": "^2.0.36",
@@ -41,6 +42,11 @@
         "tslib": "2.3.0"
       }
     },
+    "node_modules/es6-promise": {
+      "version": "4.2.8",
+      "resolved": "https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz",
+      "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
+    },
     "node_modules/flv.js": {
       "version": "1.6.2",
       "resolved": "https://registry.npmmirror.com/flv.js/-/flv.js-1.6.2.tgz",
@@ -50,11 +56,6 @@
         "webworkify-webpack": "^2.1.5"
       }
     },
-    "node_modules/flv.js/node_modules/es6-promise": {
-      "version": "4.2.8",
-      "resolved": "https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz",
-      "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
-    },
     "node_modules/flv.js/node_modules/webworkify-webpack": {
       "version": "2.1.5",
       "resolved": "https://registry.npmmirror.com/webworkify-webpack/-/webworkify-webpack-2.1.5.tgz",
@@ -101,11 +102,13 @@
   "dependencies": {
     "dayjs": {
       "version": "1.11.12",
-      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.12.tgz"
+      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.12.tgz",
+      "integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg=="
     },
     "echarts": {
       "version": "5.5.1",
       "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.5.1.tgz",
+      "integrity": "sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==",
       "requires": {
         "tslib": "2.3.0",
         "zrender": "5.6.0"
@@ -126,6 +129,11 @@
         }
       }
     },
+    "es6-promise": {
+      "version": "4.2.8",
+      "resolved": "https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz",
+      "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
+    },
     "flv.js": {
       "version": "1.6.2",
       "resolved": "https://registry.npmmirror.com/flv.js/-/flv.js-1.6.2.tgz",
@@ -135,11 +143,6 @@
         "webworkify-webpack": "^2.1.5"
       },
       "dependencies": {
-        "es6-promise": {
-          "version": "4.2.8",
-          "resolved": "https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz",
-          "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
-        },
         "webworkify-webpack": {
           "version": "2.1.5",
           "resolved": "https://registry.npmmirror.com/webworkify-webpack/-/webworkify-webpack-2.1.5.tgz",
@@ -149,20 +152,24 @@
     },
     "moment": {
       "version": "2.30.1",
-      "resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz"
+      "resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
+      "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="
     },
     "uview-ui": {
       "version": "2.0.37",
-      "resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-2.0.37.tgz"
+      "resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-2.0.37.tgz",
+      "integrity": "sha512-iBcWNmQa01Wr+z004G6XIVPDctOrJIAx7LObQceUAPxZh6kJYjIOAMp5JE1K4VpoMV5bKYDpCd0gmX+M4nTEQQ=="
     },
     "vuex": {
       "version": "3.6.2",
       "resolved": "https://registry.npmmirror.com/vuex/-/vuex-3.6.2.tgz",
+      "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==",
       "requires": {}
     },
     "zrender": {
       "version": "5.6.0",
       "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.6.0.tgz",
+      "integrity": "sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==",
       "requires": {
         "tslib": "2.3.0"
       },

+ 1 - 0
pages/home/detail/autodoor/autodoor.vue

@@ -279,6 +279,7 @@ export default {
       },
       frontGateStatus: "", //前门状态
       rearGateStatus: "", //后门状态
+      midGateStatus: "", //状态
       windowAngle: 0, //前窗打开角度
       windowAngle1: 0, //后窗打开角度
       windowArea: "", //风窗面积设定值

+ 9 - 9
pages/home/detail/doorAnimate/doorAnimate.vue

@@ -29,7 +29,7 @@
           ></div>
         </div>
         <div>
-          <video
+         <!-- <video
             v-if="item.type == 'flv'"
             :id="'cameraElement' + item.id"
             muted
@@ -38,7 +38,7 @@
             width="100%"
             height="100%"
             style="width: 100%"
-          ></video>
+          ></video> -->
         </div>
       </div>
       <div style="" v-show="doorcount == 2">
@@ -95,7 +95,7 @@
           ></div>
         </div>
         <div>
-          <video
+         <!-- <video
             v-if="item.type == 'flv'"
             :id="'cameraElement' + item.id"
             muted
@@ -104,7 +104,7 @@
             width="100%"
             height="100%"
             style="width: 100%"
-          ></video>
+          ></video> -->
         </div>
       </div>
       <div style="" v-show="doorcount == 3">
@@ -187,7 +187,7 @@
           ></div>
         </div>
         <div>
-          <video
+         <!-- <video
             v-if="item.type == 'flv'"
             :id="'cameraElement' + item.id"
             muted
@@ -196,7 +196,7 @@
             width="100%"
             height="100%"
             style="width: 100%"
-          ></video>
+          ></video> -->
         </div>
       </div>
       <div style="" v-show="doorcount == 4">
@@ -305,7 +305,7 @@
           ></div>
         </div>
         <div>
-          <video
+         <!-- <video
             v-if="item.type == 'flv'"
             :id="'cameraElement' + item.id"
             muted
@@ -314,7 +314,7 @@
             width="100%"
             height="100%"
             style="width: 100%"
-          ></video>
+          ></video> -->
         </div>
       </div>
     </div>
@@ -322,7 +322,7 @@
 </template>
 
 <script>
-import flvjs from "flv.js";
+// import flvjs from "flv.js";
 export default {
   data() {
     return {

+ 2 - 3
pages/index/index.vue

@@ -7,8 +7,7 @@
         height: wvHeight + 'px',
         width: wvWidth + 'px',
         marginTop: wvTop + 'px',
-        border: 'none',
-        background: '#000',
+        border: 'none'
       }"
     >
       <u-loading-icon></u-loading-icon>
@@ -79,7 +78,7 @@ export default {
   data() {
     return {
       isLandScape: "",
-      PageCur: "tun2D",
+      PageCur: "device",
       tun3DPage: null,
       wvHeight: getApp().globalData.windowHeight,
       wvWidth: getApp().globalData.windowWidth,

+ 268 - 248
pages/login/login.vue

@@ -47,263 +47,283 @@
 </template>
 
 <script>
-	import { ACCESS_TOKEN,USER_NAME,USER_INFO } from "@/common/util/constants"
-	import { mapActions } from "vuex"
-    import configService from '@/common/service/config.service.js';
-	
-    export default {
-        data() {
-            return {
-				shape:'',//round 圆形
-				loading: false,
-				userName: '',
-				password: '',
-				phoneNo: '',
-				smsCode: '',
-				showPassword: false, //是否显示明文
-				smsCountDown: 0,
-				smsCountInterval: null,
-				toggleDelay: false,
-				version:'',
-				//第三方登录相关信息
-				thirdType:"",
-				thirdLoginInfo:"",
-				thirdLoginState:false,
-				bindingPhoneModal:false,
-				thirdUserUuid:''
-            };
-        },
-		onLoad:function(){
-			// #ifdef APP-PLUS
-			var that=this
-			plus.runtime.getProperty( plus.runtime.appid, function ( wgtinfo ) {
-				that.version=wgtinfo.version
-			});
-			// #endif
-		},
-		computed: {
-		      isSendSMSEnable() {
-		        return this.smsCountDown <= 0 && this.phoneNo.length > 4;
-		      },
-		      getSendBtnText() {
-		        if (this.smsCountDown > 0) {
-		          return this.smsCountDown + '秒后发送';
-		        } else {
-		          return '发送验证码';
-		        }
-		      },
-		      canSMSLogin() {
-		        return this.userName.length > 4 && this.smsCode.length > 4;
-		      },
-		      canPwdLogin() {
-		        return this.userName.length > 4 && this.password.length > 4;
-		      },
-		},
-        methods: {
-			 ...mapActions([ "mLogin","PhoneLogin","ThirdLogin" ]),
-			onLogin: function (){
-			        if(!this.userName || this.userName.length==0){
-			          this.$tip.toast('请填写用户名');
-			          return;
-			        }
-			        if(!this.password || this.password.length==0){
-			           this.$tip.toast('请填写密码');
-			          return;
-			        }
-			        let loginParams = {
-			          username:this.userName,
-			          password:this.password
-			        }
-					this.loading=true;
-			        this.mLogin(loginParams).then((res) => {
-					  this.loading=false;
-			          if(res.data.success){
-						 // #ifdef APP-PLUS
-						  this.saveClientId()
-						 // #endif
-						 // #ifndef APP-PLUS
-						  this.$tip.success('登录成功!')
-						  this.$Router.replaceAll({name:'index'})
-						 // #endif
-						}else{
-			              this.$tip.alert(res.data.message);
-			            }
-			        }).catch((err) => {
-			          let msg = err.data.message || "请求出现错误,请稍后再试"
-			          this.loading=false;
-					  this.$tip.alert(msg);
-			        }).finally(()=>{
-					  this.loading=false;
-				})
-			},
-			saveClientId(){
-				var info = plus.push.getClientInfo();
-				var cid = info.clientid;
-				this.$http.get("/sys/user/saveClientId",{params:{clientId:cid}}).then(res=>{
-					console.log("res::saveClientId>",res)
-					this.$tip.success('登录成功!')
-					this.$Router.replaceAll({name:'index'})
-				})
-			},
-			changePassword() {
-				this.showPassword = !this.showPassword;
-			},
-			onSMSSend() {
-				let smsParams = {};
-				smsParams.mobile=this.phoneNo;
-				smsParams.smsmode="0";
-				let checkPhone = new RegExp(/^[1]([3-9])[0-9]{9}$/);
-                if(!smsParams.mobile || smsParams.mobile.length==0){
-					this.$tip.toast('请输入手机号');
-					return false
-				}
-				if(!checkPhone.test(smsParams.mobile)){
-					this.$tip.toast('请输入正确的手机号');
-					return false
-				}
-				this.$http.post("/sys/sms",smsParams).then(res=>{
-				  if(res.data.success){
-					this.smsCountDown = 60;
-					this.startSMSTimer();
-				  }else{
-					this.smsCountDown = 0;
-					this.$tip.toast(res.data.message);
-				  }
-				});
-			  },
-			startSMSTimer() {
-				this.smsCountInterval = setInterval(() => {
-				  this.smsCountDown--;
-				  if (this.smsCountDown <= 0) {
-					clearInterval(this.smsCountInterval);
-				  }
-				}, 1000);
-			},
-			onSMSLogin() {
-				let checkPhone = new RegExp(/^[1]([3-9])[0-9]{9}$/);
-				
-				if(!this.phoneNo || this.phoneNo.length==0){
-				  this.$tip.toast('请填写手机号');
-				  return;
-				}
-				if(!checkPhone.test(this.phoneNo)){
-					this.$tip.toast('请输入正确的手机号');
-					return false
-				}
-				if(!this.smsCode || this.smsCode.length==0){
-				  this.$tip.toast('请填短信验证码');
-				  return;
-				}
-				let loginParams = {
-				  mobile:this.phoneNo,
-				  captcha:this.smsCode
-				};
-				this.PhoneLogin(loginParams).then((res) => {
-				  console.log("res====》",res)
-				  if(res.data.success){
-					this.$tip.success('登录成功!')
-					this.$Router.replaceAll({name:'index'})
-				  }else{
-					this.$tip.error(res.data.message);
-				  }
-				}).catch((err) => {
-				  let msg = ((err.response || {}).data || {}).message || err.data.message || "请求出现错误,请稍后再试"
-				  this.$tip.error(msg);
-				});
-			},
-			loginSuccess() {
-			  // 登陆成功,重定向到主页
-			  this.$Router.replace({name:'index'})
-			},
-			requestFailed(err) {
-			  this.$message.warning("登录失败")
-			},
-			changeloginType(){
-				console.log("changeloginType====")
-				var tourl = configService.apiUrl;
-				tourl = tourl.replace(9999,8080);
-				tourl = 'https://id.shendong.com.cn/default' + '/login?service=' + 'http://localhost:8080';
-				console.log("==========="+tourl);
-				if (process.env.VUE_APP_PLATFORM != 'h5'){
-				    // plus.runtime.openURL('http://localhost:8080?ticket=12345')
-					this.openBrowser('http://localhost:8080?ticket=12345');
-				}
-				else
-					this.openBrowser('https://www.baidu.com');
-				// window.location.href='/pages/index/index?ticket=123'
-				 // this.$router.push({ path: '/pages/index/index?ticket=123',query:"2w354" })
-			},
-			openBrowser(url) {
-			    // 使用uni.navigateTo打开内置浏览器
-				console.log("----url---------------"+url)
-			    uni.navigateTo({
-			      "url": '/pages/webview/webview?url=' + encodeURIComponent(url)
-			    });
-			  }
-        },
-		beforeDestroy() {
-		    if (this.smsCountInterval) {
-		        clearInterval(this.smsCountInterval);
-		    }
-		},
+import { ACCESS_TOKEN, USER_NAME, USER_INFO } from "@/common/util/constants";
+import { mapActions } from "vuex";
+import configService from "@/common/service/config.service.js";
+
+export default {
+  data() {
+    return {
+      shape: "", //round 圆形
+      loading: false,
+      userName: "",
+      password: "",
+      phoneNo: "",
+      smsCode: "",
+      showPassword: false, //是否显示明文
+      smsCountDown: 0,
+      smsCountInterval: null,
+      toggleDelay: false,
+      version: "",
+      //第三方登录相关信息
+      thirdType: "",
+      thirdLoginInfo: "",
+      thirdLoginState: false,
+      bindingPhoneModal: false,
+      thirdUserUuid: "",
+    };
+  },
+  onLoad: function () {
+    // #ifdef APP-PLUS
+    var that = this;
+    plus.runtime.getProperty(plus.runtime.appid, function (wgtinfo) {
+      that.version = wgtinfo.version;
+    });
+    // #endif
+  },
+  computed: {
+    isSendSMSEnable() {
+      return this.smsCountDown <= 0 && this.phoneNo.length > 4;
+    },
+    getSendBtnText() {
+      if (this.smsCountDown > 0) {
+        return this.smsCountDown + "秒后发送";
+      } else {
+        return "发送验证码";
+      }
+    },
+    canSMSLogin() {
+      return this.userName.length > 4 && this.smsCode.length > 4;
+    },
+    canPwdLogin() {
+      return this.userName.length > 4 && this.password.length > 4;
+    },
+  },
+  methods: {
+    ...mapActions(["mLogin", "PhoneLogin", "ThirdLogin"]),
+    onLogin: function () {
+      if (!this.userName || this.userName.length == 0) {
+        this.$tip.toast("请填写用户名");
+        return;
+      }
+      if (!this.password || this.password.length == 0) {
+        this.$tip.toast("请填写密码");
+        return;
+      }
+      let loginParams = {
+        username: this.userName,
+        password: this.password,
+      };
+      this.loading = true;
+      this.mLogin(loginParams)
+        .then((res) => {
+          this.loading = false;
+          if (res.data.success) {
+            // #ifdef APP-PLUS
+            this.saveClientId();
+            // #endif
+            // #ifndef APP-PLUS
+            this.$tip.success("登录成功!");
+            uni.navigateTo({
+              url: "/pages/index/index",
+            });
+            // #endif
+          } else {
+            this.$tip.alert(res.data.message);
+          }
+        })
+        .catch((err) => {
+          let msg = err.data.message || "请求出现错误,请稍后再试";
+          this.loading = false;
+          this.$tip.alert(msg);
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    saveClientId() {
+      var info = plus.push.getClientInfo();
+      var cid = info.clientid;
+      this.$http
+        .get("/sys/user/saveClientId", { params: { clientId: cid } })
+        .then((res) => {
+          console.log("res::saveClientId>", res);
+          this.$tip.success("登录成功!");
+          uni.navigateTo({
+            url: "/pages/index/index",
+          });
+        });
+    },
+    changePassword() {
+      this.showPassword = !this.showPassword;
+    },
+    onSMSSend() {
+      let smsParams = {};
+      smsParams.mobile = this.phoneNo;
+      smsParams.smsmode = "0";
+      let checkPhone = new RegExp(/^[1]([3-9])[0-9]{9}$/);
+      if (!smsParams.mobile || smsParams.mobile.length == 0) {
+        this.$tip.toast("请输入手机号");
+        return false;
+      }
+      if (!checkPhone.test(smsParams.mobile)) {
+        this.$tip.toast("请输入正确的手机号");
+        return false;
+      }
+      this.$http.post("/sys/sms", smsParams).then((res) => {
+        if (res.data.success) {
+          this.smsCountDown = 60;
+          this.startSMSTimer();
+        } else {
+          this.smsCountDown = 0;
+          this.$tip.toast(res.data.message);
+        }
+      });
+    },
+    startSMSTimer() {
+      this.smsCountInterval = setInterval(() => {
+        this.smsCountDown--;
+        if (this.smsCountDown <= 0) {
+          clearInterval(this.smsCountInterval);
+        }
+      }, 1000);
+    },
+    onSMSLogin() {
+      let checkPhone = new RegExp(/^[1]([3-9])[0-9]{9}$/);
+
+      if (!this.phoneNo || this.phoneNo.length == 0) {
+        this.$tip.toast("请填写手机号");
+        return;
+      }
+      if (!checkPhone.test(this.phoneNo)) {
+        this.$tip.toast("请输入正确的手机号");
+        return false;
+      }
+      if (!this.smsCode || this.smsCode.length == 0) {
+        this.$tip.toast("请填短信验证码");
+        return;
+      }
+      let loginParams = {
+        mobile: this.phoneNo,
+        captcha: this.smsCode,
+      };
+      this.PhoneLogin(loginParams)
+        .then((res) => {
+          console.log("res====》", res);
+          if (res.data.success) {
+            this.$tip.success("登录成功!");
+            uni.navigateTo({
+              url: "/pages/index/index",
+            });
+          } else {
+            this.$tip.error(res.data.message);
+          }
+        })
+        .catch((err) => {
+          let msg =
+            ((err.response || {}).data || {}).message ||
+            err.data.message ||
+            "请求出现错误,请稍后再试";
+          this.$tip.error(msg);
+        });
+    },
+    loginSuccess() {
+      // 登陆成功,重定向到主页
+      this.$Router.replace({ name: "index" });
+    },
+    requestFailed(err) {
+      this.$message.warning("登录失败");
+    },
+    changeloginType() {
+      console.log("changeloginType====");
+      var tourl = configService.apiUrl;
+      tourl = tourl.replace(9999, 8080);
+      tourl =
+        "https://id.shendong.com.cn/default" +
+        "/login?service=" +
+        "http://localhost:8080";
+      console.log("===========" + tourl);
+      if (process.env.VUE_APP_PLATFORM != "h5") {
+        // plus.runtime.openURL('http://localhost:8080?ticket=12345')
+        this.openBrowser("http://localhost:8080?ticket=12345");
+      } else this.openBrowser("https://www.baidu.com");
+      // window.location.href='/pages/index/index?ticket=123'
+      // this.$router.push({ path: '/pages/index/index?ticket=123',query:"2w354" })
+    },
+    openBrowser(url) {
+      // 使用uni.navigateTo打开内置浏览器
+      console.log("----url---------------" + url);
+      uni.navigateTo({
+        url: "/pages/webview/webview?url=" + encodeURIComponent(url),
+      });
+    },
+  },
+  beforeDestroy() {
+    if (this.smsCountInterval) {
+      clearInterval(this.smsCountInterval);
     }
+  },
+};
 </script>
 
 <style>
-    .login-paddingtop {
-        padding-top: 100upx;
-    }
+.login-paddingtop {
+  padding-top: 100upx;
+}
 
-    .zai-box {
-        padding: 0 20upx;
-        padding-top: 100upx;
-        position: relative;
-    }
+.zai-box {
+  padding: 0 20upx;
+  padding-top: 100upx;
+  position: relative;
+}
 
-    .zai-logo {
-        width: 200upx;
-        height: 150px;
-    }
+.zai-logo {
+  width: 200upx;
+  height: 150px;
+}
 
-    .zai-title {
-		margin-top: 20upx;
-       font-size: 58upx;
-       color: #000000;
-       text-align: center;
-    }
+.zai-title {
+  margin-top: 20upx;
+  font-size: 58upx;
+  color: #000000;
+  text-align: center;
+}
 
-    .zai-title2 {
-		margin-top: 20upx;
-       font-size: 28upx;
-       color: #000000;
-       text-align: center;
-    }
-    .input-placeholder, .zai-input {
-        color: #94afce;
-    }
-
-    .zai-label {
-        padding: 60upx 0;
-        text-align: center;
-        font-size: 30upx;
-        color: #a7b6d0;
-    }
+<<<<<<< HEAD .input-placeholder,
+.zai-input {
+  color: #94afce;
+}
+======= .zai-title2 {
+  margin-top: 20upx;
+  font-size: 28upx;
+  color: #000000;
+  text-align: center;
+}
+.input-placeholder,
+.zai-input {
+  color: #94afce;
+}
+>>>>>>>f9a901e3f950200c21f1645c7cafe558c314d958 .zai-label {
+  padding: 60upx 0;
+  text-align: center;
+  font-size: 30upx;
+  color: #a7b6d0;
+}
 
-    .zai-btn {
-        background: #ff65a3;
-        color: #fff;
-        border: 0;
-        border-radius: 100upx;
-        font-size: 36upx;
-    }
+.zai-btn {
+  background: #ff65a3;
+  color: #fff;
+  border: 0;
+  border-radius: 100upx;
+  font-size: 36upx;
+}
 
-    .zai-btn:after {
-        border: 0;
-    }
-
-    /*按钮点击效果*/
-    .zai-btn.button-hover {
-        transform: translate(1upx, 1upx);
-    }
+.zai-btn:after {
+  border: 0;
+}
 
+/*按钮点击效果*/
+.zai-btn.button-hover {
+  transform: translate(1upx, 1upx);
+}
 </style>