From 9ab6b38c098f857f2ce0772693142c930e4f9b6d Mon Sep 17 00:00:00 2001 From: whycq <913841844@qq.com> Date: 星期六, 30 三月 2024 10:44:03 +0800 Subject: [PATCH] # --- pages/login/login.vue | 838 +++++++++++++++++++++++++++-------------------------------- 1 files changed, 390 insertions(+), 448 deletions(-) diff --git a/pages/login/login.vue b/pages/login/login.vue index 71310b7..65c1a9e 100644 --- a/pages/login/login.vue +++ b/pages/login/login.vue @@ -1,215 +1,296 @@ <template> - <view class="zai-box"> - - <scroll-view scroll-y class="page"> - - <view class="text-center" :style="[{animation: 'show ' + 0.4+ 's 1'}]"> - <image src="../../static/logo.png" mode='aspectFit' class="zai-logo" @longtap='longpressImg'></image> + <view> + <!-- 璁剧疆 --> + <view class="settings"> + <view class="settings-btn"> + <uni-icons type="gear" size="30" color="#707070" @click="settings"></uni-icons> </view> - <view class="box padding-lr-xl login-paddingtop" :style="[{animation: 'show ' + 0.6+ 's 1'}]"> - <block v-if="loginWay==1"> - <view class="cu-form-group margin-top shadow-warp" :class="[shape=='round'?'round':'']"> - <view class="title-login"><text class="cuIcon-people margin-right-xs"></text>璐﹀彿:</view> - <input placeholder="璇疯緭鍏ヨ处鍙�" name="input" v-model="userName"></input> - </view> - <view class="cu-form-group margin-top shadow-warp" :class="[shape=='round'?'round':'']"> - <view class="title-login"><text class="cuIcon-lock margin-right-xs"></text>瀵嗙爜:</view> - <input class="uni-input" placeholder="璇疯緭鍏ュ瘑鐮�" :password="!showPassword" v-model="password" /> - <view class="action text-lg"> - <text :class="[showPassword ? 'cuIcon-attention' : 'cuIcon-attentionforbid']" - @click="changePassword"></text> - </view> - </view> - <view class="flex margin-xs justify-between"> - <checkbox-group class="rember"> - <label> - <checkbox value="cb" :checked="rember" @tap="rember = !rember" - style="transform:scale(0.7)" /><text>璁颁綇瀵嗙爜</text> - </label> - </checkbox-group> - <!-- <text class="changeIP" @click="changeIP()">璁剧疆IP</text> --> - <text class="changeIP" @click="config()">閰嶇疆</text> - </view> - <view class="flex padding justify-center margin-top"> - <button class="cu-btn bg-blue lg shadow" :loading="loading" - :class="[shape=='round'?'round':'']" @tap="onLogin"><text - space="emsp">{{loading ? "鐧诲綍涓�...":" 鐧诲綍 "}}</text> - </button> - </view> - </block> - - <!-- #ifdef APP-PLUS --> - <view class="padding flex flex-direction text-center" - style="position: fixed;width: 80%;bottom: 0;text-align: center;"> - 褰撳墠鐗堟湰:{{version}} - </view> - <!-- #endif --> - + </view> + <!-- logo --> + <view class="logo"> + <view class="logo-box"> + <image src="../../static/img/logo.png" mode="aspectFit"></image> </view> - </scroll-view> - - <view> - <uni-popup ref="popup" type="right"> - <view class="config"> - <view class="config-title"><text>閰嶇疆</text></view> - <view class="config-item"> - <text>ip鍦板潃锛�</text> - <input v-model="IP" type="text" placeholder="192.168.1.1" - placeholder-style="font-size:16rpx;text-indent: 10rpx;"> - </view> - <view class="config-item"> - <text>绔彛鍙凤細</text> - <input v-model="PORT" type="text" placeholder="8080" - placeholder-style="font-size:16rpx;text-indent: 10rpx;"> - </view> - <view class="config-item"> - <text>椤圭洰锛�</text> - <input v-model="PROJECT" type="text" placeholder="wms" - placeholder-style="font-size:16rpx;text-indent: 10rpx;"> - </view> - <view class="flex justify-around"> - <button class="cu-btn bg-blue lg" @click="configConfirm">纭</button> - </view> + </view> + <view class="content"> + <!-- 璐﹀彿 --> + <view class="box shadow-warp"> + <view class="box-icon"> + <uni-icons type="person" size="20" color="#707070"></uni-icons> </view> - </uni-popup> + <view class="box-text">璐﹀彿:</view> + <view class="box-input"> + <input type="text" placeholder="璇疯緭鍏ヨ处鍙�" v-model="user.userName" + placeholder-style="font-size:14px;color:#ccc;"> + </view> + <view class="box-show"></view> + </view> + <!-- 瀵嗙爜 --> + <view class="box shadow-warp"> + <view class="box-icon"> + <uni-icons type="locked" size="20" color="#707070"></uni-icons> + </view> + <view class="box-text">瀵嗙爜:</view> + <view class="box-input"> + <input :password="!showPassword" placeholder="璇疯緭鍏ュ瘑鐮�" v-model="user.password" + placeholder-style="font-size:14px;color:#ccc;" > + </view> + <view class="box-show"> + <uni-icons type="eye-filled" size="20" color="#707070" v-if="!showPassword" @click="changePassword"></uni-icons> + <uni-icons type="eye" size="20" color="#707070" v-if="showPassword" @click="changePassword"></uni-icons> + </view> + </view> + <!-- 璁颁綇瀵嗙爜 --> + <view class="check"> + <view class="check-left"> + <view>璁颁綇瀵嗙爜</view> + </view> + <view class="check-right"> + <switch :checked='remberPassword' color="#FFCC33" style="zoom:.5" @change="remberChange"/> + </view> + </view> </view> - - - - - <!-- 鐧诲綍鍔犺浇寮圭獥 --> - <view class="cu-load load-modal" v-if="loading"> - <!-- <view class="cuIcon-emojifill text-orange"></view> --> - <image src="../../static/logo1.png" mode="aspectFit" class="round"></image> - <view class="gray-text">鐧诲綍涓�...</view> + <!-- 鐧诲綍鎸夐挳 --> + <view class="submit"> + <view class="" style="width: 400rpx;"> + <button type="primary" @click="onLogin()" :loading="load.loading">{{load.btnText}}</button> + </view> + </view> + + <!-- 璁剧疆寮圭獥鍖哄煙 --> <view> <uni-popup ref="inputDialog" type="dialog"> - <uni-popup-dialog ref="inputClose" mode="input" title="璁剧疆IP" v-model="IP" placeholder="璇疯緭鍏ユ湇鍔″櫒IP" - @confirm="dialogInputConfirm"> - </uni-popup-dialog> + <view class="popup"> + <!-- 鏍囬 --> + <view class="title">閰嶇疆</view> + <view class="popup-item"> + <view class="popup-item-left">IP:</view> + <view class="popup-item-right"><input type="text" v-model="url.ip"></view> + </view> + <view class="popup-item"> + <view class="popup-item-left">绔彛:</view> + <view class="popup-item-right"><input type="text" v-model="url.port"></view> + </view> + <view class="popup-item"> + <view class="popup-item-left">椤圭洰:</view> + <view class="popup-item-right"><input type="text" v-model="url.project"></view> + </view> + <view class="btn"> + <view class="btn-left" @click="close()">鍙栨秷</view> + <view class="btn-right" @click="settingConfirm()">纭</view> + </view> + </view> </uni-popup> </view> - <view style="margin-top: 10rpx;"> - <uni-popup ref="serverPort" type="dialog"> - <uni-popup-dialog ref="inputClose" mode="input" title="璁剧疆绔彛" v-model="PORT" placeholder="璇疯緭鍏ユ湇鍔″櫒绔彛鍙�" - @confirm="serverPortConfirm"> - </uni-popup-dialog> + + <view> + <!-- 鎻愮ず绐楃ず渚� --> + <uni-popup ref="upVersion" type="dialog"> + <uni-popup-dialog :type="msgType" title="閫氱煡" :content="dialogContent" @confirm="dialogConfirm" + @close="dialogClose"></uni-popup-dialog> </uni-popup> </view> + + <!-- 鐗堟湰鍙� --> + <!-- #ifdef APP-PLUS --> + <view class="version"> + 褰撳墠鐗堟湰:{{version}} + </view> + <!-- #endif --> </view> - </template> <script> - // import { ACCESS_TOKEN,USER_NAME,USER_INFO } from "@/common/util/constants" - import { - mapActions - } from "vuex" - import md5 from '../../common/md5.js' - // import configService from '@/common/service/config.service.js'; - + import md5 from '../../static/js/md5.js' export default { data() { return { - shape: '', //round 鍦嗗舰 - loading: false, - phoneNo: '', - smsCode: '', - showPassword: false, //鏄惁鏄剧ず鏄庢枃 - loginWay: 1, //1: 璐﹀瘑锛�2锛氶獙璇佺爜 - smsCountDown: 0, - smsCountInterval: null, - toggleDelay: false, version: '', - //绗笁鏂圭櫥褰曠浉鍏充俊鎭� - thirdType: "", - thirdLoginInfo: "", - thirdLoginState: false, - bindingPhoneModal: false, - thirdUserUuid: '', + showPassword: false, + value: '', + remberPassword: true, url: { - bindingThirdPhone: '/sys/thirdLogin/bindingThirdPhone' + ip: '', + port: '', + project: '' }, - type: '', - userName: '', - password: '', - rember: true, - IP: '10.20.192.200', - PORT: '', // 榛樿绔彛鍙� - PROJECT: '' - }; + baseUrl: '', + user: { + userName: '', + password: '', + }, + load: { + loading: false, + btnText: '鐧诲綍' + }, + msgType: 'success', + filename: '', + dialogContent: '' + } }, - mounted() { - let that = this; - //缂撳瓨鐨勮处鍙� - const HCuname = uni.getStorageSync('HCuname'); - //缂撳瓨鐨勫瘑鐮� - const HCpassw = uni.getStorageSync('HCpassw'); - //鏈夌紦瀛樺氨璧嬪�肩粰鏂囨湰娌℃湁灏辨竻绌� - if (HCuname && HCpassw) { - that.userName = HCuname; - that.password = HCpassw; - } else { - that.userName = ''; - that.password = ''; + onLoad() { + this.user = uni.getStorageSync('user') + this.url = uni.getStorageSync('url') + this.baseUrl = uni.getStorageSync('baseUrl') + if (!this.user) { + this.user = {userName: '',password: ''} } - const UIP = uni.getStorageSync('UIP'); - if (UIP) { - that.IP = UIP; - that.baseIP = UIP; - } else { - that.IP = ''; + if (!this.url) { + this.url = {ip: '',port: '',project: ''} } - - const UPORT = uni.getStorageSync('UPORT'); - if (UPORT) { - that.PORT = UPORT; - that.basePORT = UPORT; - } else { - that.PORT = ''; - } - const PROJ = uni.getStorageSync('UPROJ'); - this.PROJECT = PROJ; - this.baseUrl = PROJ - }, - onLoad: function() { - // #ifdef APP-PLUS - var that = this - plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) { - that.version = wgtinfo.version - }); - // #endif // this.getVersion() - // this.downWgt() }, - 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; - }, + onShow () { + // 鎵嬫満绔増鏈彿 + // // #ifdef APP-PLUS + // var that = this + // plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) { + // that.version = wgtinfo.version + // }); + // // #endif + this.getVersion() }, methods: { + // 鏄剧ず/闅愯棌瀵嗙爜 + changePassword() { + this.showPassword = !this.showPassword; + }, + remberChange(e) { + this.remberPassword = !this.remberPassword + }, + // 璁剧疆绐楀彛寮�鍚寜閽� + settings() { + this.$refs.inputDialog.open() + }, + // 璁剧疆绐楀彛纭淇敼鎸夐挳 + dialogInputConfirm() { + this.$refs.inputDialog.close() + }, + // 璁剧疆绐楀彛鍏抽棴鎸夐挳 + close() { + this.$refs.inputDialog.close() + }, + // 淇濆瓨ip + settingConfirm() { + console.log(this.baseUrl); + this.baseUrl = "http://" + this.url.ip + ':' + this.url.port + '/' + this.url.project + uni.setStorageSync('baseUrl', this.baseUrl); + uni.setStorageSync('url', this.url); + console.log(this.baseUrl); + // this.$refs.inputDialog.close() + }, + onLogin() { + let that = this + console.log(this.baseUrl); + uni.request({ + url: that.baseUrl + '/login.action', + fail(result) { + uni.showToast({ + icon: 'error', + title: '璇锋眰澶辫触' + }) + }, + data: { + username: that.user.userName, + password: md5.hex_md5(that.user.password) + }, + header: { + "content-type": "application/json" + }, + success(result) { + if (result.statusCode === 404) { + uni.showToast({ + title: '鐧诲綍澶辫触', + icon: "error" + }) + return + } + let res = result.data + if (res.code === 200) { + that.load.loading = true; + that.load.btnText = '鐧诲綍涓�'; + uni.setStorageSync('token', res.data.token); + if(that.remberPassword){ + uni.setStorageSync('user', that.user); + }else{ + uni.removeStorageSync('user'); + } + setTimeout(() => { + uni.showToast({ + title: '鐧诲綍鎴愬姛' + }) + setTimeout(() => { + uni.reLaunch({ + url: '../home/home' + }); + }, 300) + }, 700) + } else { + uni.showToast({ + title: res.msg + }) + } + }, + }) + }, + //妫�娴嬪綋鍓嶅钩鍙帮紝濡傛灉鏄畨鍗撳垯鍚姩瀹夊崜鏇存柊 + getVersion() { + let that = this; + uni.getSystemInfo({ + success: (res) => { + if (res.platform == "android") { + that.AndroidCheckUpdate(); + } + } + }) + }, + // 鑾峰彇褰撳墠鐗堟湰鍙� + AndroidCheckUpdate() { + let that = this; + plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => { + that.version = wgtinfo.version //瀹㈡埛绔増鏈彿 + }) + setTimeout(()=>{ + that.getUpdateVersion() + },100) + }, + // 鏍¢獙鐗堟湰 + getUpdateVersion() { + let that = this + let type = 0 + if (that.baseUrl == 'http://undefined:undefined/undefined') { + return + } + + let url = that.baseUrl + '/appVersion/checkUpdate/' + that.version + '/' + type + uni.request({ + url: url, + method: 'GET', + success(res) { + var res = res.data + if (res.data) { + that.filename = res.data.path + that.dialogContent = '鍙戠幇鏂扮増鏈�:' + res.data.version + ', 鏄惁绔嬪嵆鏇存柊' + that.$refs.upVersion.open() + } + + } + }) + }, + dialogConfirm() { + this.$refs.upVersion.close() + this.downWgt() + }, + dialogClose() { + this.$refs.upVersion.close() + }, downWgt() { let that = this; - const downloadUrl = "http://192.168.4.188:8088/jfwms/static/appupload/android_debug.apk" - console.log('url:' + downloadUrl) + const downloadUrl = that.baseUrl + "/appVersion/downloadApp/" + that.filename uni.showLoading({ title: '鏇存柊涓�︹��' }) - // return const downloadTask = uni.downloadFile({ //鎵ц涓嬭浇 url: downloadUrl, //涓嬭浇鍦板潃 timeout: 1000 * 30, //30绉掕秴鏃舵椂闂� @@ -217,9 +298,7 @@ console.log(downloadResult); that.showdownLine = false uni.hideLoading(); - console.log('downloadResult.statusCode' + downloadResult.statusCode) if (downloadResult.statusCode == 200) { - console.log('鏇存柊涓�') uni.showModal({ title: '', content: '鏇存柊鎴愬姛锛岀‘瀹氱幇鍦ㄩ噸鍚悧锛�', @@ -239,299 +318,162 @@ } } }); + } else { + uni.hideLoading(); + that.showdownLine = false + uni.showToast({ + title:'璇峰厛涓婁紶瀹夎鍖�', + icon: 'error' + }) } }, fail: err => { uni.hideLoading(); that.showdownLine = false - that.$u.toast(err.errMsg) - console.log(err) + that.$u.toast(downloadResult.errMsg) }, complete: com => { + console.log(com) } }); - + // 涓嬭浇杩涘害 downloadTask.onProgressUpdate(res => { - // that.$u.toast(res.progress) that.downloadNum = res.progress console.log('涓嬭浇杩涘害' + that.downloadNum); - // console.log('宸茬粡涓嬭浇鐨勬暟鎹暱搴�' + res.totalBytesWritten); - // console.log('棰勬湡闇�瑕佷笅杞界殑鏁版嵁鎬婚暱搴�' + res.totalBytesExpectedToWrite); - - // 婊¤冻娴嬭瘯鏉′欢锛屽彇娑堜笅杞戒换鍔°�� - // if (res.progress > 50) { - // downloadTask.abort(); - // } }); }, - // 閰嶇疆 URL PORT 椤圭洰(jkwms) - config() { - this.$refs.popup.open("center") - }, - // 纭閰嶇疆 - configConfirm() { - this.baseIP = this.IP - uni.setStorageSync('UIP', this.baseIP) - this.basePORT = this.PORT - uni.setStorageSync('UPORT', this.basePORT) - this.baseUrl = this.PROJECT - uni.setStorageSync('UPROJ', this.baseUrl) - var baseUrl = this.baseHttp + this.baseIP + ':' + this.basePORT + "/" + this.baseUrl - uni.setStorageSync("baseUrl", baseUrl) - this.$refs.popup.close() - }, - longpressImg() { // 闀挎寜鍥剧墖 - this.$refs.serverPort.open() - }, - serverPortConfirm(type) { - this.basePORT = type - // 瀛樺叆鏈湴缂撳瓨 - this.PORT = type - uni.setStorageSync('UPORT', this.basePORT) - }, - changeIP() { - this.$refs.inputDialog.open() - }, - dialogInputConfirm(type) { - this.baseIP = type - // 瀛樺叆鏈湴缂撳瓨 - this.IP = type; - uni.setStorageSync('UIP', this.baseIP) - }, - checkboxChange: function(e) { - if (e.detail.value.length == 1) { - - //鑾峰彇缂撳瓨鐨勮处鍙� - uni.getStorageSync('HCuname', this.userName); - uni.getStorageSync('HCpassw', this.password); - } else { - uni.removeStorageSync('HCuname'); - uni.removeStorageSync('HCpassw'); - } - }, - onLogin: function() { - if (!this.userName || this.userName.length == 0) { - uni.showToast({ - title: '璇峰~鍐欒处鍙�', - icon: "none" - }) - return; - } - if (!this.password || this.password.length == 0) { - uni.showToast({ - title: '璇峰~鍐欏瘑鐮�', - icon: "none" - }) - return; - } - if (this.baseIP == undefined || this.baseIP == '') { - uni.showToast({ - title: '璇峰厛璁剧疆IP', - icon: 'none' - }) - return; - } - if (this.basePORT == undefined) { - uni.showToast({ - title: '闀挎寜鍥剧墖杈撳叆绔彛鍙�', - icon: 'none' - }) - return; - } - uni.showLoading(); - setTimeout(function() { - uni.hideLoading(); - uni.showToast({ - title: '鐧诲綍瓒呮椂', - position: 'bottom', - duration: 1000 - }); - }, 6000) - uni.request({ - url: this.baseHttp + this.baseIP + ':' + this.basePORT + "/" + this.baseUrl + - '/login.action', - data: { - username: this.userName, - password: md5.hex_md5(this.password) - }, - header: { - "content-type": "application/json" - }, - success: (result) => { - let res = result.data; - uni.hideLoading(); - if (res.code == 200) { - uni.showToast({ - title: '鐧诲綍鎴愬姛', - position: 'bottom', - duration: 1000 - }); - if (this.rember) { - uni.setStorageSync('HCuname', this.userName); - uni.setStorageSync('HCpassw', this.password); - } else { - uni.removeStorageSync('HCuname'); - uni.removeStorageSync('HCpassw'); - } - uni.setStorageSync('token', res.data.token); - setTimeout(() => { - // uni.navigateBack(); // 灏忕▼搴忕敤杩欎釜 鎶婇椤佃矾鐢辨斁绗竴涓� - uni.reLaunch({ - url: '../index/index2' - }); - }, 1000); - } else { - uni.showToast({ - title: res.msg, - icon: "none", - position: 'top' - }) - } - - } - }); - }, - saveClientId() { - var info = plus.push.getClientInfo(); - var cid = info.clientid; - this.$http.get("/sys/user/saveClientId", { - params: { - clientId: cid - } - }).then(res => { - this.$tip.success('鐧诲綍鎴愬姛!') - this.$Router.replaceAll({ - name: 'index' - }) - }) - }, - changePassword() { - this.showPassword = !this.showPassword; - }, - loginSuccess() { - // 鐧婚檰鎴愬姛锛岄噸瀹氬悜鍒颁富椤� - this.$Router.replace({ - name: 'index' - }) - }, - requestFailed(err) { - this.$message.warning("鐧诲綍澶辫触") - }, - }, - beforeDestroy() { - if (this.smsCountInterval) { - clearInterval(this.smsCountInterval); - } - }, - - + + } } </script> - <style> - @import "../../colorui/main.css"; - @import "../../colorui/icon.css"; - @import "../../colorui/animation.css"; - - .config { - width: 500rpx; - height: 500rpx; - background-color: #fff; - border-radius: 20px; + @import url('../../static/css/wms.css/wms.css'); + /* 璁剧疆鍖哄煙 */ + .settings { + min-height: 100rpx; } - - .config-title { - height: 100rpx; - font-size: 32rpx; - text-align: center; - line-height: 100rpx; - } - - .config-item { - height: 100rpx; - } - - .config-item text { - display: inline-block; - float: left; - text-indent: 1em; - } - - .config-item input { - display: inline-block; + .settings-btn { float: right; - margin-right: 50rpx; - width: 300rpx; - height: 50rpx; - border: 1px solid #aaaaaa; - border-radius: 10rpx; - font-size: 16rpx; - text-indent: 10rpx; - + margin-right: 10rpx; } - - .login-paddingtop { - padding-top: 50upx; + .logo { + height: 25%; + width: 100%; + display: flex; + justify-content: center; } + .logo-box { + margin: auto 0; + } + image { + height: 300rpx; + } + /* 杈撳叆妗嗗尯鍩� */ + .content { + min-height: 250rpx; + /* background-color: coral; */ + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + color: #606266; + } + .box { + width: 80%; + height: 100rpx; + margin-top: 30rpx; + background-color: white; + display: flex; + font-size: 14px; + align-items: center; + + } + .box-icon { + width: 80rpx; + text-align: center; + } + .box-text { + width: 100rpx; + text-align: center; + } + .box-show { + margin-left: auto; + /* margin-right: 10rpx; */ + width: 60rpx; + text-align: center; + } + input { + padding-left: 10rpx; + font-size: 14px; + color: #303133; + } + + .check { + width: 78%; + display: flex; + font-size: 12px; + color: #606266; + margin-top: 10rpx; + } + .check-right { + margin-left: auto; + } + .submit { + display: flex; + justify-content: center; + position: fixed; + width: 100%; + bottom: 100rpx; + } + .version { + position: fixed; + width: 100%; + bottom: 0; + text-align: center; + font-size: 12px; + color: #909399; + } + + + - .zai-box { - padding: 0 20upx; - padding-top: 100upx; + + + + + + + + + + + + + /* ------ */ + + .shadow-warp { position: relative; + box-shadow: 0 0 10upx rgba(0, 0, 0, 0.1); } - - .zai-logo { - width: 600upx; - height: 150px; + + .shadow-warp:before, + .shadow-warp:after { + position: absolute; + content: ""; + top: 20upx; + bottom: 30upx; + left: 20upx; + width: 50%; + box-shadow: 0 30upx 20upx rgba(0, 0, 0, 0.2); + transform: rotate(-3deg); + z-index: -1; } - - .zai-title { - font-size: 58upx; - color: #000000; - text-align: center; + + .shadow-warp:after { + right: 20upx; + left: auto; + transform: rotate(3deg); } - - .input-placeholder, - .zai-input { - color: #94afce; - } - - .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:after { - border: 0; - } - - /*鎸夐挳鐐瑰嚮鏁堟灉*/ - .zai-btn.button-hover { - transform: translate(1upx, 1upx); - } - - .changeBox { - margin-top: 20upx; - } - - .rember { - display: inline-block; - } - - .changeIP { - float: right; - margin-right: 15upx; - } -</style> +</style> \ No newline at end of file -- Gitblit v1.9.1